Bug 790746 - qpidd crash/segfault on startup
Summary: qpidd crash/segfault on startup
Keywords:
Status: CLOSED DUPLICATE of bug 797426
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qpid-cpp
Version: 6.2
Hardware: x86_64
OS: Linux
high
urgent
Target Milestone: rc
: ---
Assignee: Kim van der Riet
QA Contact: Leonid Zhaldybin
URL:
Whiteboard:
Depends On: 797426
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-02-15 10:10 UTC by Stanislav Kozina
Modified: 2018-11-27 20:35 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-28 11:21:36 UTC
Target Upstream Version:


Attachments (Terms of Use)
qpidd coredump (1.57 MB, application/x-gzip)
2012-02-15 10:10 UTC, Stanislav Kozina
no flags Details
backtrace (7.90 KB, text/plain)
2012-02-27 08:10 UTC, Stanislav Graf
no flags Details
threads (7.52 KB, text/plain)
2012-02-27 08:11 UTC, Stanislav Graf
no flags Details

Description Stanislav Kozina 2012-02-15 10:10:11 UTC
Created attachment 562180 [details]
qpidd coredump

Description of problem:

Service qpidd fails to start because qpidd crashes.

Version-Release number of selected component (if applicable):

qpid-cpp-server-0.12-6.el6.x86_64

How reproducible:

Always.

Steps to Reproduce:
1. # /usr/sbin/qpidd --data-dir /var/lib/qpidd --daemon
2.
3.
  
Actual results:

$ /usr/sbin/qpidd --data-dir /var/lib/qpidd --daemon
Segmentation fault (core dumped)

Expected results:

Not printed segmentation fault

Additional info:

$ strace /usr/sbin/qpidd --data-dir /var/lib/qpidd --daemon
pipe([5, 6])                            = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f566ce82a70) = 8673
close(6)                                = 0
select(1024, [5], NULL, NULL, {600, 0}) = 1 (in [5], left {599, 985142})
read(5, "(\26", 2)                      = 2
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
$ pgrep qpidd
8673
$ ps o pid,ppid,comm p 8673
  PID  PPID COMMAND
 8673     1 qpidd
$ netstat -ln | grep 5672
tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN      

Therefore I believe that the parent process tries to read from unnamed pipe to unmapped memory and dies on SIGSEGV. But it's child (which is supposed to write to the pipe?) is still running (reparented to init process), waiting and blocking port 5672.

Comment 1 Stanislav Graf 2012-02-27 08:10:54 UTC
Created attachment 565981 [details]
backtrace

Comment 2 Stanislav Graf 2012-02-27 08:11:26 UTC
Created attachment 565982 [details]
threads

Comment 3 Yoshiki Ohmura 2012-02-28 09:09:55 UTC
Our customer also faced same problem.
But they have 2 system which following package installed.

qpid-cpp-server-0.12-6.el6.x86_64

But when they tried start qpidd manually, System-A died on SIGSEGV, but System-B works fine.

I asked the customer to send me sosreport, and I found some differences in each package list.

System-A (died) has following packages
nss-3.13.1-6.el6_2.x86_64
nss-sysinit-3.13.1-6.el6_2.x86_64
nss-tools-3.13.1-6.el6_2.x86_64
nss-util-3.13.1-3.el6_2.x86_64

System-B (works fine)
> nss-3.12.10-17.el6_2.x86_64
> nss-sysinit-3.12.10-17.el6_2.x86_64
> nss-tools-3.12.10-17.el6_2.x86_64
> nss-util-3.12.10-2.el6.x86_64

It seems that this behaviour is depend on version of nss-* packages.

Comment 4 Pavel Moravec 2012-02-28 09:25:38 UTC
> It seems that this behaviour is depend on version of nss-* packages.

Yes it is. A possible workaround that shall help is to _not_ using --daemon option on broker startup (i.e. not starting it via service / as a daemon).

Comment 5 Yoshiki Ohmura 2012-02-28 10:03:17 UTC
I see, I'll suggest it for the customer, thanks.

Comment 6 Jeff Needle 2012-02-28 11:21:36 UTC

*** This bug has been marked as a duplicate of bug 797426 ***

Comment 7 Jeff Needle 2012-02-28 11:24:01 UTC
This segfault is due to the nss upgrade.  Downgrading nss to nss-3.12.10-17 will work around this until a new nss is released, which should be shortly.


Note You need to log in before you can comment on or make changes to this bug.