From: Atom2 <ariel.atom2@web2web.at>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [BUG] XEN 4.3.3 - segfault in xl create for HVM with PCI passthrough
Date: Tue, 04 Nov 2014 17:14:01 +0100 [thread overview]
Message-ID: <5458FB49.4040801@web2web.at> (raw)
In-Reply-To: <1415115868.11486.49.camel@citrix.com>
Am 04.11.14 um 16:44 schrieb Ian Campbell:
> On Tue, 2014-11-04 at 16:13 +0100, Atom2 wrote:
>> I assume it may be warranted to "upgrade" this issue to a bug status
>> (obviously also in the hope that it attractes wider interest) by
>> prefixing the subject line with a [BUG] prefix as per
>> http://wiki.xen.org/wiki/Reporting_Bugs_against_Xen_Project. I have
>> exhausted all my options (including numerous IRC attempts), provided all
>> the information I have been asked for but the issue persists and nobody
>> seems to have an idea how to rectify the problem.
>
> Sorry for the delay, the issue is quite perplexing so I was intending to
> sleep on it, but didn't get any inspiration in doing so...
Thanks for getting back ... obviously sometimes sleep is not the right cure.
>
> In the gdb traces you provided there is:
> #10 read_all (fd=10, data=data@entry=0x7ffff0000a10, len=len@entry=16, nonblocking=nonblocking@entry=0) at xs.c:374
>
Just to be on the same page: That was for the destroy case. The
corresponding line for the create case was:
#10 read_all (fd=18, data=data@entry=0x7fffe80008d0, len=len@entry=16,
nonblocking=nonblocking@entry=0) at xs.c:374
I don't know whether that makes any difference though.
> which seems to correspond to the
> if (!read_all(h->fd, &msg->hdr, sizeof(msg->hdr), nonblocking)) { /* Cancellation point */
I did have a look at the file xs.c as well in the source and there are 3
source code files named xs.c:
tools/xenstore/xs.c
tools/python/xen/lowlevel/xs/xs.c
extras/mini-os/lib/xs.c
Out of these only the first two do have at least 374 lines and only the
first one has a non empty source code line at line 374. That line
however reads as follows in my source:
done = read(fd, data, len)
and is located in function
static bool read_all(int fd, void *data, unsigned int len, int nonblocking)
starting at line 361
The line you referr to is located at line 1139 in the same file. I just
wanted to bring this to your attention, but I might be on the wrong
track here ...
> in read_message (because the size and offset seem matches this call, so
> I think it is more likely than the other one, but the logic below
> applies in either case).
>
> The thing we are reading into has literally just been allocated, so I
> can't think of any reason accessing it should fault.
>
> There is only one xenstore change between 4.3.1 and 4.3.3 which is
> commit 014f9219f1dca3ee92948f0cfcda8d1befa6cbcd
> Author: Matthew Daley <mattd@bugfuzz.com>
> Date: Sat Nov 30 13:20:04 2013 +1300
>
> xenstore: sanity check incoming message body lengths
>
> This is for the client-side receiving messages from xenstored, so there
> is no security impact, unlike XSA-72.
>
> but I can't see any way that could possibly cause a segfault.
>
> So, I'm afraid I'm completely mystified.
>
> You could try running the xl command under valgrind, you may find "xl
> create -F" (which keeps xl in the foreground) handy if you try this.
> That might help catch any heap corruption etc.
I don't know what valgrind is, but I'll have a look and see how to deal
with that ...
>
> A related thing to try might be to run "MALLOC_CHECK_=2 xl create ..."
> which enables glib's heap consistency checks (described at the end of
> http://www.gnu.org/software/libc/manual/html_node/Heap-Consistency-Checking.html) which might give a clue.
I tried that, but the same segfault and no more messages on the screen -
or should I have run this under gdb as well?
>
> Otherwise I think the next step would be to downgrade to 4.3.1 and see
> if the problem persists, in order to rule out changes elsewhere in the
> system. If the problem doesn't happen with a 4.3.1 rebuilt on your
> current system then the next thing would probably be to bisect the
> issue. There are only 31 toolstack changes in that range, so it ought to
> only take 5-6 iterations.
Unfortunately 4.3.1 is no longer available as an ebuild as 4.3.3 seemed
to fix security issues and therefore 4.3.1 has been deleted from the
repos. So it's not straightforward and I need to figure out how to get
the old version back. But I am sure there's a way.
Thanks Atom2
next prev parent reply other threads:[~2014-11-04 16:14 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-27 21:25 segfault in xl create for HVM with PCI passthrough Atom2
2014-10-28 10:59 ` Ian Campbell
2014-10-28 15:39 ` Atom2
2014-10-28 16:04 ` Ian Campbell
2014-10-29 0:26 ` Atom2
2014-10-30 23:05 ` Atom2
2014-11-04 15:13 ` [BUG] XEN 4.3.3 - " Atom2
2014-11-04 15:44 ` Ian Campbell
2014-11-04 16:14 ` Atom2 [this message]
2014-11-04 16:31 ` Ian Campbell
2014-11-04 16:48 ` Atom2
2014-11-05 9:33 ` Ian Campbell
2014-11-04 17:30 ` Atom2
2014-11-05 9:45 ` Ian Campbell
2014-11-05 12:01 ` Atom2
2014-11-05 12:39 ` Ian Campbell
2014-11-05 12:45 ` Andrew Cooper
2014-11-05 12:47 ` Ian Campbell
2014-11-06 15:11 ` Atom2
2014-11-10 11:16 ` Ian Campbell
2014-11-10 11:44 ` Atom2
2014-11-10 12:09 ` Ian Campbell
2014-12-01 3:34 ` Dennis Lan (dlan)
2014-12-01 9:38 ` Ian Campbell
2014-11-09 23:03 ` Atom2
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5458FB49.4040801@web2web.at \
--to=ariel.atom2@web2web.at \
--cc=Ian.Campbell@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).