[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

4.13: import xen.lowlevel.xc fails with SystemError: bad call flags

Hello again,

despite having built a Xen 4.13 with just Python3 on a
Linux From Scratch system,




and booted into the Dom0 (Linux 5.5.3, GCC 9.2.0, Python 3.8.1)
without issue, in coming to boot up a DomU, I get the following
terse message

~ # cat /var/log/xen/bootloader.3.log
Traceback (most recent call last):
  File "/usr/lib/xen/bin/pygrub", line 21, in <module>
    import xen.lowlevel.xc
SystemError: bad call flags
~ #

in the wake of these messages during the xl cretate's  pygrub boot:

libxl: error: libxl_bootloader.c:648:bootloader_finished: Domain
3:bootloader failed - consult logfile /var/log/xen/bootloader.3.log
libxl: error: libxl_exec.c:117:libxl_report_child_exitstatus:
bootloader [766] exited with error status 1
libxl: error: libxl_create.c:1420:domcreate_rebuild_done: Domain
3:cannot (re-)build domain: -3
libxl: error: libxl_domain.c:1177:libxl__destroy_domid: Domain
3:Non-existant domain
libxl: error: libxl_domain.c:1131:domain_destroy_callback: Domain
3:Unable to destroy guest
libxl: error: libxl_domain.c:1058:domain_destroy_cb: Domain
3:Destruction of domain failed
libxl: error: libxl_dom.c:40:libxl__domain_type: unable to get domain
type for domid=3
xl: unable to exec console client: No such file or directory
libxl: error: libxl_exec.c:117:libxl_report_child_exitstatus: console
child [767] exited with error status 1

There's a suggestion out on the interweb thing that these

  SystemError: bad call flags

are something to do with Python 3.8, as in this thread I found
when searching for the above:

It's a bug in the Python binding of libcomps. I proposed a fix upstream:


> In Python 3.7, import didn't check descriptor flags (METH_KEYWORDS):
> these flags were only checked when the methods were called.
> In Python 3.8, the flags are checked at soon as the module is imported,
> which prevents the module to be imported.

Is that likely to be what i am seeing?

I had a gander at



but it's not obvious to me where, presumably in,

#define INITERROR return NULL
PyMODINIT_FUNC PyInit_xc(void)
#define INITERROR return
PyMODINIT_FUNC initxc(void)

I could start to "play around" with any "descriptor flags"

Any pointers welcome, including "it's not a Python 3.8 thing,
you idiot" responses,



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.