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