On 02/04/2020 13:43, Kevin Buckley wrote:
> 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,

We've got a fix in staging

https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=e19b4b3b55f84e0cfcc02fe5d66965969a81c965

It hasn't been backported to the 4.13 stable tree yet.

~Andrew

Reply via email to