Thanks a lot for tracking this down. For some reason it happens on some
machines but not others. I'll put up a JIRA and a patch and fix this on
trunk.

On Fri, 2012-09-07 at 09:43 -0400, Nitin Shah wrote:
> Hi,
> 
> Thanks for the information. I started doing some investigation on the new 
> release mainly because I could not see what we were ( if possible) doing 
> wrong with the release. The broker would start executing and immediately one 
> was getting an assert as shown below in the output I generated with running 
> it under GDB. It asserts because it fails the test in file types.cpp in 
> qpid/ha line 38 ( assert(value < count). I noticed that this is happening as 
> a result of the call from the HaBroker::initialize() function line 90 in the 
> HaBroker.cpp file where a QPID_LOG is being invoked.
> 
> I believe the root of the problem is the BrokerInfo class constructor is not 
> initializing the private class data called "BrokerStatus status" which is 
> defined in file BrokerInfo.h . BrokerStatus is defined in types.h as an enum 
> as follows
> 
> enum BrokerStatus {
>     JOINING,                    ///< New broker, looking for primary
>     CATCHUP,                    ///< Backup: Connected to primary, catching 
> up on state.
>     READY,                      ///< Backup: Caught up, ready to take over.
>     RECOVERING,                 ///< Primary: waiting for backups to connect 
> & sync
>     ACTIVE,                     ///< Primary: actively serving clients.
>     STANDALONE                  ///< Not part of a cluster.
> };
> 
> It seems like the assert happens on the second call to EnumBase::str() in 
> types.cpp. The count was 6 and the value was some large uninitialized value.
> 
> I initialized the status variable in the constructor to STANDALONE and the 
> broker came up and worked fine.
> 
> *****I assume we are going to need a patch or an update for the broker to be 
> used.
> 
> NOTE:: If I start the broker with the "--log-enable warning" or for that 
> matter others like notice, the broker comes up and works fine. But, if the 
> broker is started with no log-enable parameters, IT CRASHES. This seems 
> pretty strange as I thought you guys would have seen this.
> 
> I am running the broker on a CentOs 6.2 system. We have been using version 16 
> to date. The images are created a new and loaded on a VM, so the VM has no 
> remnants of the version 16, so it is  clean version 18 load and use.
> 
> If I wish to continue using this release, can someone tell me what the 
> correct process for getting a patch is? Alternatively, what is the patch I 
> should apply, meaning can I add a initialize of the status parameter and what 
> is the CORRECT enum value to set it to?
> 
> Nitin
> 
> Ps let me know if there any other information you need
> 
> Thanks
> 
> 
> 
> 
> 
> (gdb) where
> #0  0x00007ffff58b58a5 in raise () from /lib64/libc.so.6
> #1  0x00007ffff58b7085 in abort () from /lib64/libc.so.6
> #2  0x00007ffff58aea1e in __assert_fail_base () from /lib64/libc.so.6
> #3  0x00007ffff58aeae0 in __assert_fail () from /lib64/libc.so.6
> #4  0x00007ffff50464fb in qpid::ha::EnumBase::str (this=<value optimized 
> out>) at qpid/ha/types.cpp:38
> #5  0x00007ffff5046533 in qpid::ha::operator<< (o=..., e=...) at 
> qpid/ha/types.cpp:64
> #6  0x00007ffff5013a5a in qpid::ha::operator<< (o=<value optimized out>, 
> b=<value optimized out>)
>     at qpid/ha/BrokerInfo.cpp:99
> #7  0x00007ffff5029fb4 in operator<< <qpid::ha::BrokerInfo> (this=0x6507b0) 
> at ../include/qpid/Msg.h:63
> #8  qpid::ha::HaBroker::initialize (this=0x6507b0) at qpid/ha/HaBroker.cpp:90
> #9  0x00007ffff75d4861 in operator() (f=<value optimized out>)
>     at /usr/include/boost/bind/mem_fn_template.hpp:162
> #10 operator()<boost::_mfi::mf1<void, qpid::Plugin, qpid::Plugin::Target&>, 
> boost::_bi::list1<qpid::Plugin* const&> > (f=<value optimized out>) at 
> /usr/include/boost/bind/bind.hpp:306
> #11 operator()<qpid::Plugin*> (f=<value optimized out>) at 
> /usr/include/boost/bind/bind_template.hpp:47
> #12 for_each<__gnu_cxx::__normal_iterator<qpid::Plugin* const*, 
> std::vector<qpid::Plugin*, std::allocator<qpid::Plugin*> > >, 
> boost::_bi::bind_t<void, boost::_mfi::mf1<void, qpid::Plugin, 
> qpid::Plugin::Target&>, boost::_bi::list2<boost::arg<1>, 
> boost::reference_wrapper<qpid::Plugin::Target> > > > (f=<value optimized out>)
>     at 
> /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_algo.h:4200
> #13 qpid::(anonymous namespace)::each_plugin<boost::_bi::bind_t<void, 
> boost::_mfi::mf1<void, qpid::Plugin, qpid::Plugin::Target&>, 
> boost::_bi::list2<boost::arg<1>, 
> boost::reference_wrapper<qpid::Plugin::Target> > > > (
>     f=<value optimized out>) at qpid/Plugin.cpp:73
> #14 0x00007ffff75d48a2 in qpid::Plugin::initializeAll (t=<value optimized 
> out>) at qpid/Plugin.cpp:91
> 
> 
> 
> 
> 
> -----Original Message-----
> From: Gordon Sim [mailto:g...@redhat.com]
> Sent: Wednesday, September 05, 2012 12:29 PM
> To: dev@qpid.apache.org
> Subject: Re: FW: problems starting the version 18 broker
> 
> Can you run it with full tracing on? i.e. --log-enable trace+
> 
> What platform are you running on? Did make check pass when building? Did you 
> build and install from source on that machine; did you uninstall the
> 0.16 release first or are they both installed in different locations?
> 
> The second error appears to be coming from the HA module, possibly related to 
> the options. Could you be picking up the 0.16 modules when starting the 0.18 
> broker? (Trying with --module-dir pointing at a 0.18 modules only directory 
> would verify that).
> 
> On 09/05/2012 04:48 PM, Nitin Shah wrote:
> > Ps if I run it in foreground then I get the following message
> >
> > 2012-09-05 11:39:45 [Broker] notice SASL disabled: No Authentication
> > Performed
> >
> > 2012-09-05 11:39:45 [Network] notice Listening on TCP/TCP6 port 5672
> >
> > qpidd: qpid/ha/types.cpp:38: std::string qpid::ha::EnumBase::str()
> > const: Assertion `value < count' failed.
> >
> > Aborted
> >
> > Thanks
> >
> > Nitin
> >
> > Description: bti_logo_small
> >
> > *From:*Nitin Shah
> > *Sent:* Wednesday, September 05, 2012 10:37 AM
> > *To:* dev@qpid.apache.org<mailto:dev@qpid.apache.org>
> > *Cc:* Nitin Shah
> > *Subject:* problems starting the version 18 broker
> >
> > Hi,
> >
> > I tried to start the version 18 of the C++ broker and get the
> > following error in /var/log/messages and the broker dies. Any idea
> > what we are doing wrong. We have been using the version 16 and that starts 
> > fine.
> >
> > 10:29:35 nshah_1 qpidd[1550]: 2012-09-05 10:29:35 [Broker] notice SASL
> > disabled: No Authentication Performed
> >
> > Sep  5 10:29:35 nshah_1 qpidd[1550]: 2012-09-05 10:29:35 [Network]
> > notice Listening on TCP/TCP6 port 5672
> >
> > Sep  5 10:29:35 nshah_1 qpidd[1549]: 2012-09-05 10:29:35 [Broker]
> > critical Unexpected error: Cannot read from child process.
> >
> > Nitin
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> dev-unsubscr...@qpid.apache.org<mailto:dev-unsubscr...@qpid.apache.org> For 
> additional commands, e-mail: 
> dev-h...@qpid.apache.org<mailto:dev-h...@qpid.apache.org>
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to