xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
@ 2015-08-12 11:03 Benjamin Beier
  2015-08-12 11:28 ` Ian Campbell
  0 siblings, 1 reply; 9+ messages in thread
From: Benjamin Beier @ 2015-08-12 11:03 UTC (permalink / raw)
  To: xen-devel

Since xen version 4.5.1 there is a bug with the xl cpupool-create command.
It always throws a segmentation fault when used with a config file as 
parameter.
The content of the config file does not really matter (valid or invalid).
It also fails with the example config file in /etc/xen/cpupool or with 
the dryrun flag.
You never get any output apart from "segmentation fault".
If you create exactly the same cpupool without using a config file it 
works absolutely fine.
Tested on multiple systems and it seems to be reproducible for everyone.
STrace shows that the command fails right after reading the content of 
the config file.

Regards,
Benjamin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-12 11:03 [BUG][4.5.1]xl cpupool-create segfault (with config file parameter) Benjamin Beier
@ 2015-08-12 11:28 ` Ian Campbell
  2015-08-13  9:01   ` Dario Faggioli
  2015-08-13 11:13   ` Benjamin Beier
  0 siblings, 2 replies; 9+ messages in thread
From: Ian Campbell @ 2015-08-12 11:28 UTC (permalink / raw)
  To: Benjamin Beier, xen-devel; +Cc: Dario Faggioli

On Wed, 2015-08-12 at 13:03 +0200, Benjamin Beier wrote:
> Since xen version 4.5.1 there is a bug with the xl cpupool-create 
> command.
> It always throws a segmentation fault when used with a config file as 
> parameter.
> The content of the config file does not really matter (valid or invalid).
> It also fails with the example config file in /etc/xen/cpupool or with 
> the dryrun flag.
> You never get any output apart from "segmentation fault".
> If you create exactly the same cpupool without using a config file it 
> works absolutely fine.
> Tested on multiple systems and it seems to be reproducible for everyone.
> STrace shows that the command fails right after reading the content of 
> the config file.

Please can you capture a backtrace by running it under gdb. Valgrind might
also have something interesting to say.

FWIW this doesn't happen on the current development branch:
    # cat foo
    Testing
    # xl cpupool-create foo
    foo:1: config parsing error near `Testing': lexical error
    Failed to parse config file: Invalid argument

But I don't see any obviously related looking fixes in the commit log.

Was 4.5.0 ok?

Ian.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-12 11:28 ` Ian Campbell
@ 2015-08-13  9:01   ` Dario Faggioli
  2015-08-13 11:13   ` Benjamin Beier
  1 sibling, 0 replies; 9+ messages in thread
From: Dario Faggioli @ 2015-08-13  9:01 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Benjamin Beier, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 3083 bytes --]

On Wed, 2015-08-12 at 12:28 +0100, Ian Campbell wrote:
> On Wed, 2015-08-12 at 13:03 +0200, Benjamin Beier wrote:

> > You never get any output apart from "segmentation fault".
> > If you create exactly the same cpupool without using a config file it 
> > works absolutely fine.
> > Tested on multiple systems and it seems to be reproducible for everyone.
> > STrace shows that the command fails right after reading the content of 
> > the config file.
> 
> Please can you capture a backtrace by running it under gdb. Valgrind might
> also have something interesting to say.
> 
Yep, a gdb backtrace would be really helpful.

I've 'played' with cpupools quite a bit in the last few months (during
the whole Xen 4.6 release cycle), and I don't remember seeing anything
like this... :-/

> FWIW this doesn't happen on the current development branch:
>     # cat foo
>     Testing
>     # xl cpupool-create foo
>     foo:1: config parsing error near `Testing': lexical error
>     Failed to parse config file: Invalid argument
> 
Just tried with the example cpupool config file, from /etc/xen/cpupool,
and it works. I'm also on staging (i.e., 4-6.-rc1):

  root@Zhaman:~# cat /etc/xen/cpupool  
  #============================================================================
  # Configuration setup for 'xm cpupool-create' or 'xl cpupool-create'.
  # This script sets the parameters used when a cpupool is created using
  # 'xm cpupool-create' or 'xl cpupool-create'.
  # You use a separate script for each cpupool you want to create, or 
  # you can set the parameters for the cpupool on the xm command line.
  #============================================================================

  # the name of the new cpupool
  name = "Example-Cpupool"

  # the scheduler to use: valid are e.g. credit, credit2 and rtds
  sched = "credit"

  # list of cpus to use
  cpus = ["2", "3"]

  root@Zhaman:~# xl cpupool-create /etc/xen/cpupool
  cpu 2 illegal or not free
  root@Zhaman:~# xl cpupool-cpu-remove Pool-0 2,3
  root@Zhaman:~# xl cpupool-create /etc/xen/cpupool
  Using config file "/etc/xen/cpupool"
  cpupool name:   Example-Cpupool
  scheduler:      credit
  number of cpus: 2
  root@Zhaman:~# xl cpupool-list 
  Name               CPUs   Sched     Active   Domain count
  Pool-0              14    credit       y          1
  Example-Cpupool      2    credit       y          0

> But I don't see any obviously related looking fixes in the commit log.
> 
Since 4.5, there has been changes touching both xl and libxl bits of
cpupools. E.g.:

  commit a86eecbbf5155aa5b4ec02b6c5e41baf1a7f49de
  xl: enable using ranges of pCPUs when creating cpupools

However, as I said, I don't remember facing (and fixing) such error.

> Was 4.5.0 ok?
> 
> Ian.

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-12 11:28 ` Ian Campbell
  2015-08-13  9:01   ` Dario Faggioli
@ 2015-08-13 11:13   ` Benjamin Beier
  2015-08-13 11:29     ` Ian Campbell
  2015-08-26 22:25     ` Jim Fehlig
  1 sibling, 2 replies; 9+ messages in thread
From: Benjamin Beier @ 2015-08-13 11:13 UTC (permalink / raw)
  To: Ian Campbell, xen-devel; +Cc: Dario Faggioli

On 08/12/2015 01:28 PM, Ian Campbell wrote:
> On Wed, 2015-08-12 at 13:03 +0200, Benjamin Beier wrote:
>> Since xen version 4.5.1 there is a bug with the xl cpupool-create
>> command.
>> It always throws a segmentation fault when used with a config file as
>> parameter.
>> The content of the config file does not really matter (valid or invalid).
>> It also fails with the example config file in /etc/xen/cpupool or with
>> the dryrun flag.
>> You never get any output apart from "segmentation fault".
>> If you create exactly the same cpupool without using a config file it
>> works absolutely fine.
>> Tested on multiple systems and it seems to be reproducible for everyone.
>> STrace shows that the command fails right after reading the content of
>> the config file.
>
> Please can you capture a backtrace by running it under gdb. Valgrind might
> also have something interesting to say.
>
> FWIW this doesn't happen on the current development branch:
>      # cat foo
>      Testing
>      # xl cpupool-create foo
>      foo:1: config parsing error near `Testing': lexical error
>      Failed to parse config file: Invalid argument
>
> But I don't see any obviously related looking fixes in the commit log.
>
> Was 4.5.0 ok?

I am not 100% sure about that, because I only had a test system running 
with it.
As you guys didn't notice any problems I should mention that my servers 
are running Gentoo Linux.
Maybe this is a Gentoo specific problem and not relevant at all for 
upstream xen.
Or it is an upstream problem that only shows up on the custom-compiled 
gentoo systems.

# cat testing
foo

# xl cpupool-create testing
Segmentation fault

# strace xl cpupool-create testing
(...)
open("testing", O_RDONLY)               = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=4, ...}) = 0
fstat(7, {st_mode=S_IFREG|0644, st_size=4, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x776ec3228000
read(7, "foo\n", 4096)                  = 4
close(7)                                = 0
munmap(0x776ec3228000, 4096)            = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault

Program received signal SIGSEGV, Segmentation fault.
0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>, 
argv=0x7fffffffda50) at xl_cmdimpl.c:7102
7102    xl_cmdimpl.c: No such file or directory.
(gdb) bt
#0  0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>, 
argv=0x7fffffffda50) at xl_cmdimpl.c:7102
#1  0x0000000000407c79 in main (argc=2, argv=0x7fffffffda50) at xl.c:361

Just tell me if this is a gentoo-only thing and I will open a bug report 
there.

Regards,
Benjamin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-13 11:13   ` Benjamin Beier
@ 2015-08-13 11:29     ` Ian Campbell
  2015-08-13 12:12       ` Benjamin Beier
  2015-08-26 22:25     ` Jim Fehlig
  1 sibling, 1 reply; 9+ messages in thread
From: Ian Campbell @ 2015-08-13 11:29 UTC (permalink / raw)
  To: Benjamin Beier, xen-devel; +Cc: Dario Faggioli

On Thu, 2015-08-13 at 13:13 +0200, Benjamin Beier wrote:
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000418db5 in main_cpupoolcreate (argc=, 
> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
> 7102    xl_cmdimpl.c: No such file or directory.
> (gdb) bt
> #0  0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>, 
> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
> #1  0x0000000000407c79 in main (argc=2, argv=0x7fffffffda50) at xl.c:361

In "git show RELEASE-4.5.1:tools/libxl/xl_cmdimpl.c" line 7102 is a blank
line. The next line is:
     config = xlu_cfg_init(stderr, config_src);
which might be the culprit but also might not be.

Are you running pristine 4.5.1 or are the (perhaps gentoo added) patches?
Can you figure out what line 7102 of that might be.

> Just tell me if this is a gentoo-only thing and I will open a bug report 
> there.

It's not clear yet, since it might be a backport of a buggy patch, but it's
starting to look a bit that way. Once xl_cmdimpl.c:7102 and the list of
patches is clarified I think we'll know one way or another.

Ian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-13 11:29     ` Ian Campbell
@ 2015-08-13 12:12       ` Benjamin Beier
  0 siblings, 0 replies; 9+ messages in thread
From: Benjamin Beier @ 2015-08-13 12:12 UTC (permalink / raw)
  To: Ian Campbell, xen-devel; +Cc: Dario Faggioli

On 08/13/2015 01:29 PM, Ian Campbell wrote:
> On Thu, 2015-08-13 at 13:13 +0200, Benjamin Beier wrote:
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000000000418db5 in main_cpupoolcreate (argc=,
>> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
>> 7102    xl_cmdimpl.c: No such file or directory.
>> (gdb) bt
>> #0  0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>,
>> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
>> #1  0x0000000000407c79 in main (argc=2, argv=0x7fffffffda50) at xl.c:361
>
> In "git show RELEASE-4.5.1:tools/libxl/xl_cmdimpl.c" line 7102 is a blank
> line. The next line is:
>       config = xlu_cfg_init(stderr, config_src);
> which might be the culprit but also might not be.
>
> Are you running pristine 4.5.1 or are the (perhaps gentoo added) patches?
> Can you figure out what line 7102 of that might be.
>
>> Just tell me if this is a gentoo-only thing and I will open a bug report
>> there.
>
> It's not clear yet, since it might be a backport of a buggy patch, but it's
> starting to look a bit that way. Once xl_cmdimpl.c:7102 and the list of
> patches is clarified I think we'll know one way or another.
>
> Ian

I am not an expert for ebuilds and the xen-tools ebuild is rather 
complicated. I filed a gentoo bug report and linked to this upstream 
report here. Hopefully one of the gentoo ebuild maintainers has further 
information for you.

https://bugs.gentoo.org/show_bug.cgi?id=557458

Regards,
Benjamin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-13 11:13   ` Benjamin Beier
  2015-08-13 11:29     ` Ian Campbell
@ 2015-08-26 22:25     ` Jim Fehlig
  2015-09-01 11:18       ` Ian Campbell
  1 sibling, 1 reply; 9+ messages in thread
From: Jim Fehlig @ 2015-08-26 22:25 UTC (permalink / raw)
  To: Benjamin Beier; +Cc: Dario Faggioli, xen-devel, Ian Campbell

Benjamin Beier wrote:
> On 08/12/2015 01:28 PM, Ian Campbell wrote:
>> On Wed, 2015-08-12 at 13:03 +0200, Benjamin Beier wrote:
>>> Since xen version 4.5.1 there is a bug with the xl cpupool-create
>>> command.
>>> It always throws a segmentation fault when used with a config file as
>>> parameter.
>>> The content of the config file does not really matter (valid or
>>> invalid).
>>> It also fails with the example config file in /etc/xen/cpupool or with
>>> the dryrun flag.
>>> You never get any output apart from "segmentation fault".
>>> If you create exactly the same cpupool without using a config file it
>>> works absolutely fine.
>>> Tested on multiple systems and it seems to be reproducible for
>>> everyone.
>>> STrace shows that the command fails right after reading the content of
>>> the config file.
>>
>> Please can you capture a backtrace by running it under gdb. Valgrind
>> might
>> also have something interesting to say.
>>
>> FWIW this doesn't happen on the current development branch:
>>      # cat foo
>>      Testing
>>      # xl cpupool-create foo
>>      foo:1: config parsing error near `Testing': lexical error
>>      Failed to parse config file: Invalid argument
>>
>> But I don't see any obviously related looking fixes in the commit log.
>>
>> Was 4.5.0 ok?
>
> I am not 100% sure about that, because I only had a test system
> running with it.
> As you guys didn't notice any problems I should mention that my
> servers are running Gentoo Linux.
> Maybe this is a Gentoo specific problem and not relevant at all for
> upstream xen.
> Or it is an upstream problem that only shows up on the custom-compiled
> gentoo systems.
>
> # cat testing
> foo
>
> # xl cpupool-create testing
> Segmentation fault
>
> # strace xl cpupool-create testing
> (...)
> open("testing", O_RDONLY)               = 7
> fstat(7, {st_mode=S_IFREG|0644, st_size=4, ...}) = 0
> fstat(7, {st_mode=S_IFREG|0644, st_size=4, ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0x776ec3228000
> read(7, "foo\n", 4096)                  = 4
> close(7)                                = 0
> munmap(0x776ec3228000, 4096)            = 0
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
> +++ killed by SIGSEGV (core dumped) +++
> Segmentation fault
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>,
> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
> 7102    xl_cmdimpl.c: No such file or directory.
> (gdb) bt
> #0  0x0000000000418db5 in main_cpupoolcreate (argc=<optimized out>,
> argv=0x7fffffffda50) at xl_cmdimpl.c:7102
> #1  0x0000000000407c79 in main (argc=2, argv=0x7fffffffda50) at xl.c:361

Sorry for jumping in late, but I encountered this issue yesterday with
4.5.1. Commit 705c9e12 fixes it and should probably be backported to the
4.5 branch.

Regards,
Jim

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-08-26 22:25     ` Jim Fehlig
@ 2015-09-01 11:18       ` Ian Campbell
  2015-09-01 11:29         ` Ian Jackson
  0 siblings, 1 reply; 9+ messages in thread
From: Ian Campbell @ 2015-09-01 11:18 UTC (permalink / raw)
  To: Jim Fehlig, Benjamin Beier, Ian.Jackson; +Cc: Dario Faggioli, xen-devel

On Wed, 2015-08-26 at 16:25 -0600, Jim Fehlig wrote:
> Sorry for jumping in late, but I encountered this issue yesterday with
> 4.5.1. Commit 705c9e12 fixes it and should probably be backported to the
> 4.5 branch.

Adding Ian J (tools stable maintainer) to To:
> 
> Regards,
> Jim
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)
  2015-09-01 11:18       ` Ian Campbell
@ 2015-09-01 11:29         ` Ian Jackson
  0 siblings, 0 replies; 9+ messages in thread
From: Ian Jackson @ 2015-09-01 11:29 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Benjamin Beier, Jim Fehlig, xen-devel, Dario Faggioli

Ian Campbell writes ("Re: [Xen-devel] [BUG][4.5.1]xl cpupool-create segfault (with config file parameter)"):
> On Wed, 2015-08-26 at 16:25 -0600, Jim Fehlig wrote:
> > Sorry for jumping in late, but I encountered this issue yesterday with
> > 4.5.1. Commit 705c9e12 fixes it and should probably be backported to the
> > 4.5 branch.
> 
> Adding Ian J (tools stable maintainer) to To:

Queued, thanks.

Ian.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-09-01 11:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-12 11:03 [BUG][4.5.1]xl cpupool-create segfault (with config file parameter) Benjamin Beier
2015-08-12 11:28 ` Ian Campbell
2015-08-13  9:01   ` Dario Faggioli
2015-08-13 11:13   ` Benjamin Beier
2015-08-13 11:29     ` Ian Campbell
2015-08-13 12:12       ` Benjamin Beier
2015-08-26 22:25     ` Jim Fehlig
2015-09-01 11:18       ` Ian Campbell
2015-09-01 11:29         ` Ian Jackson

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).