Issue in lwip

Sebastian Sumpf Sebastian.Sumpf at ...1...
Thu Oct 25 13:40:27 CEST 2012


Hello Ivan,

On 10/25/2012 10:14 AM, Ivan Loskutov wrote:
> Hello,
> 
> I have an issue in lwip again. I ported the xmlrpc++ library to
> genode but simple test is failed.  I have messages in log:
> 
> no RM attachment (READ pf_addr=28 pf_ip=1183823 from 2df000)
> invalid signal-context capability
> virtual void Genode::Pager_activation_base::entry(): Could not resolve
> pf=28 ip=1183823
> 
> I tried to trace the error and found then the issue occurred in select
> function in lwip. Xmlrpc++ server does this call and sometime
> occurred this error. The error occurred in select function and control
> doesn't return to server code. The same code on host worked without
> issues. Sample code is in
> commit https://github.com/Ksys-labs/genode/commit/f567619f5f0a50e7eed74e9565ddae1320a016a0
> I ran the server in qemu and client from xmlrpc++ on my host.
> Any ideas?

I've tried your test and could reproduce the error, it seems not to
occur in LWIP but rather in 'stdcxx.lib.so' (I attached the backtrace,
you can observe that eax is 0x28). The last XmlRpc functions called are:
'XmlRpc::XmlRpcServerConnection::parseRequest' and the
'XmlRpc::XmlRpcValue::operator='. Maybe the provided data is corrupt.
Unfortunately I cannot investigate this further right now.

Greetings,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



-------------- next part --------------
#0  std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (this=0x265b4, __str=...) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/basic_string.tcc:175
#1  0x011aea1c in pair (this=0x265b4) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_pair.h:87
#2  construct (__val=..., __p=0x265b4, this=<optimized out>) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/ext/new_allocator.h:108
#3  _M_create_node (__x=..., this=0x26560) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:381
#4  _M_clone_node (__x=0x18, this=0x26560) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:427
#5  std::_Rb_tree<std::string, std::pair<std::string const, XmlRpc::XmlRpcValue>, std::_Select1st<std::pair<std::string const, XmlRpc::XmlRpcValue> >, std::less<std::string>, std::allocator<std::pair<std::string const, XmlRpc::XmlRpcValue> > >::_M_copy (this=0x26560, __x=0x18, __p=0x26564) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:1026
#6  0x011aec96 in _Rb_tree (__x=..., this=0x26560) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:627
#7  map (__x=..., this=0x26560) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_map.h:173
#8  XmlRpc::XmlRpcValue::operator= (this=0x26358, rhs=...) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.cpp:133
#9  0x011aed6e in XmlRpcValue (rhs=..., this=0x26358) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.h:70
#10 _Construct<XmlRpc::XmlRpcValue, XmlRpc::XmlRpcValue> (__value=..., __p=0x26358) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_construct.h:84
#11 __uninit_copy<__gnu_cxx::__normal_iterator<XmlRpc::XmlRpcValue const*, std::vector<XmlRpc::XmlRpcValue> >, XmlRpc::XmlRpcValue*> (__result=0x26340, __last=..., __first=...)
    at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:77
#12 uninitialized_copy<__gnu_cxx::__normal_iterator<XmlRpc::XmlRpcValue const*, std::vector<XmlRpc::XmlRpcValue> >, XmlRpc::XmlRpcValue*> (__result=0x26340, __last=..., __first=...)
    at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:119
#13 __uninitialized_copy_a<__gnu_cxx::__normal_iterator<XmlRpc::XmlRpcValue const*, std::vector<XmlRpc::XmlRpcValue> >, XmlRpc::XmlRpcValue*, XmlRpc::XmlRpcValue> (__result=0x26340, __last=..., __first=...)
    at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:259
#14 vector (__x=..., this=0x153c0) at /home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_vector.h:280
#15 XmlRpc::XmlRpcValue::operator= (this=0x153ac, rhs=...) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.cpp:132
#16 0x011a86c9 in XmlRpc::XmlRpcServerConnection::parseRequest (this=0x172fc, params=...) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:242
#17 0x011ab4ea in XmlRpc::XmlRpcServerConnection::executeRequest (this=0x172fc) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:211
#18 0x011a83b4 in XmlRpc::XmlRpcServerConnection::writeResponse (this=0x172fc) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:180
#19 0x011a85a8 in XmlRpc::XmlRpcServerConnection::handleEvent (this=0x172fc) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:61
#20 0x011a5da8 in XmlRpc::XmlRpcDispatch::work (this=0x1005f4c <s+12>, timeout=-1) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcDispatch.cpp:133
#21 0x011a6bc4 in XmlRpc::XmlRpcServer::work (this=0x1005f40 <s>, msTime=-1) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServer.cpp:127
#22 0x010005e0 in main (argc=1, argv=0x1005ee4 <argv>) at /home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/test/HelloServer.cpp:78
(gdb) p registers
No symbol "registers" in current context.
(gdb) info registers
eax            0x28	40
ecx            0xcc0	3264
edx            0x265a4	157092
ebx            0x118d614	18404884
esp            0x1016b60	0x1016b60
ebp            0x26358	0x26358
esi            0x18	24
edi            0x265b4	157108
eip            0x11837f3	0x11837f3 <std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+19>
eflags         0x3216	[ PF AF IF #12 #13 ]
cs             0x1b	27
ss             0x23	35
ds             0x23	35
es             0x23	35
fs             0x43	67
gs             0x43	67
(gdb) 



More information about the users mailing list