Bug 733451

Summary: matahari-sysconfig query() segfaults
Product: Red Hat Enterprise Linux 6 Reporter: Dave Johnson <dajohnso>
Component: matahariAssignee: Adam Stokes <astokes>
Status: CLOSED ERRATA QA Contact: Dave Johnson <dajohnso>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.2CC: astokes, matahari-maint, rbryant
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: matahari-0.4.3-1.el6 Doc Type: Bug Fix
Doc Text:
No description required.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 11:40:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 743047    
Attachments:
Description Flags
compressed core file none

Description Dave Johnson 2011-08-25 18:15:38 UTC
Created attachment 519951 [details]
compressed core file

Description of problem:
=====================================
Notice that the matahari sysconfig agent has a query() like the following but when executing 'call 6 query text 0 puppet' it will segfault.  I spoke to Adam who said this was only for augeas.

       Method: query - Perform query lookup
    Arguments:
        Name    Type    Dir  Unit  Description
        ========================================
        text    string  in         
        flags   int     in         
        scheme  string  in         
        data    string  out   


Version-Release number of selected component (if applicable):
==========================================================================
v0.4.2-9

How reproducible:
=====================================
100%

Steps to Reproduce:
=====================================
1.  install/start broker and sysconfig agent
2.  call <n> query text 0 puppet

Additional info:
=====================================

mh_qpid_callback: Message is for Sysconfig (type: matahariproject.org:Sysconfig:b96ad3bf-e6af-4154-9f6e-c8a0f8d0800d)
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct NULL not valid
Aborted (core dumped)

(gdb) bt full
<snip>
#8  0x0000003b0a69cf33 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
No symbol table info available.
#9  0x0000003b0d60a892 in qpid::types::Variant::Variant(char const*) () from /usr/lib64/libqpidtypes.so.1
No symbol table info available.
#10 0x00000000004032e3 in ConfigAgent::invoke (this=<value optimized out>, session=..., event=..., user_data=<value optimized out>)
    at /usr/src/debug/matahari-matahari-325f740/src/sysconfig/sysconfig-qmf.cpp:109
        data = 0x0
        status = 0x0
        methodName = <value optimized out>
        args = <value optimized out>
#11 0x0000003b13404791 in mh_qpid_callback (session=..., event=<value optimized out>, user_data=0x7fff3611ce40) at /usr/src/debug/matahari-matahari-325f740/src/lib/mh_agent.cpp:128
        agent = 0x7fff3611ce40
        __FUNCTION__ = "mh_qpid_callback"
#12 0x0000003b13404541 in mainloop_qmf_dispatch (source=0x212e200, callback=<value optimized out>, userdata=<value optimized out>) at /usr/src/debug/matahari-matahari-325f740/src/lib/mh_agent.cpp:581
        event = {<qmf::Handle<qmf::AgentEventImpl>> = {impl = 0x7f0940007840}, <No data fields>}
        qmf = 0x212e200
        __FUNCTION__ = "mainloop_qmf_dispatch"
#13 0x0000003b09a38f0e in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
No symbol table info available.
#14 0x0000003b09a3c938 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#15 0x0000003b09a3cd55 in g_main_loop_run () from /lib64/libglib-2.0.so.0
No symbol table info available.
#16 0x00000000004028f5 in main (argc=2, argv=<value optimized out>) at /usr/src/debug/matahari-matahari-325f740/src/sysconfig/sysconfig-qmf.cpp:59
        agent = {<MatahariAgent> = {_vptr.MatahariAgent = 0x4065b0, _impl = 0x2120b80}, _package = {data_Sysconfig = {<qmf::Handle<qmf::SchemaImpl>> = {impl = 0x2127f30}, <No data fields>}}, _instance = 
    {<qmf::Handle<qmf::DataImpl>> = {impl = 0x212dba0}, <No data fields>}, static SYSCONFIG_NAME = "Sysconfig"}
        rc = 0

Comment 4 Dave Johnson 2011-09-09 18:31:43 UTC
good 2 go in v0.4.4-2

>>> sysconfig.query('text', 0, 'puppet')
OK (0) - {u'data': 'unknown'}
>>> sysconfig.query('text', 'fred', 'puppet')
Invalid argument: flags (7) - {}

Comment 5 Russell Bryant 2011-11-16 21:57:19 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
No description required.

Comment 6 errata-xmlrpc 2011-12-06 11:40:27 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2011-1569.html