[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,

  http://youvegotbuckleys.org.nz/LFS/LFS-BOOK.html

specifically

 http://youvegotbuckleys.org.nz/LFS/LFS-BOOK.html#ch-xen


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:
https://github.com/rpm-software-management/libcomps/pull/50

Extract:

> 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

tools/python/xen/lowlevel/xc/xc.c

tools/python/xen/lowlevel/xs/xc.c

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

#if PY_MAJOR_VERSION >= 3
#define INITERROR return NULL
PyMODINIT_FUNC PyInit_xc(void)
#else
#define INITERROR return
PyMODINIT_FUNC initxc(void)
#endif
{

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,
Kevin



 


Rackspace

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