View Issue Details

IDProjectCategoryView StatusLast Update
0002018GNUnetHTTP transportpublic2012-02-28 11:05
Reporteramatus Assigned ToChristian Grothoff  
PriorityurgentSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformamd64OSDebianOS Versionsqueeze
Product Version0.9.0 
Target Version0.9.2Fixed in Version0.9.2 
Summary0002018: http(s) transport eats cpu
Descriptionmifritscher has found that running with http(s) transports enabled gnunet-service-transport pegs his cpu.
TagsNo tags attached.

Relationships

related to 0002085 closedChristian Grothoff libmicrohttpd MHD_get_timeout relies on uninitialized variable, leads to busy waiting sometimes 

Activities

Christian Grothoff

2011-12-21 10:44

manager   ~0005157

What does 'contrib/report.sh' say on that system? Also, which version of GNU libmicrohttpd is installed?

Christian Grothoff

2011-12-21 10:44

manager   ~0005158

Attaching gdb and giving us some traces would also be wonderful...

mifritscher

2011-12-21 18:05

reporter   ~0005161

locate microhttpd:
/usr/local/lib/libmicrohttpd.so.10.14.0 (compiled yesterday fresh vom svn)

report.sh:
OS : Linux
OS RELEASE : 2.6.32-5-openvz-amd64
HARDWARE : x86_64
gcc : gcc (Debian 4.4.5-8) 4.4.5
autoconf : 2.67
automake : 1.11.1
libtool : 2.2.6b
libextractor : v0.6.3
GNUnet 0.8 : Not Found (good)
GNUnet 0.9 : 0.9.0
libgcrypt : 1.4.5
mysql : 5.1.49
pkg-config : 0.25
glib2 : 2.24.2
gtk2+ : 2.20.1
GMP : libgmp3-dev-2:4.3.2+dfsg-1.deb
GNU gettext : 0.18.1
libcurl : 7.21.0
Qt : Not found
MHD : 91101


gdb (started & attached to the transport-process)

bt:
(gdb) bt
#0 0x00007f14bb9658b3 in select () from /lib/libc.so.6
#1 0x00007f14bc0b1160 in GNUNET_NETWORK_socket_select (rfds=0x1377880, wfds=0x1377910, efds=0x0, timeout=<value optimized out>) at network.c:1213
#2 0x00007f14bc0bd388 in GNUNET_SCHEDULER_run (task=<value optimized out>, task_cls=<value optimized out>) at scheduler.c:845
#3 0x00007f14bc0c5788 in GNUNET_SERVICE_run (argc=7, argv=<value optimized out>, serviceName=0x4102a4 "transport", opt=<value optimized out>, task=0x402ef0 <run>, task_cls=0x0) at service.c:1673
#4 0x0000000000402ed9 in main (argc=50, argv=0x1377888) at gnunet-service-transport.c:609

cont + Strg+C

bt
#0 0x00007f14bb9658b3 in select () from /lib/libc.so.6
#1 0x00007f14babea9bb in MHD_select (daemon=0x13b32d0, may_block=0) at daemon.c:1319
#2 0x00007f14babeacd7 in MHD_run (daemon=0x24) at daemon.c:1575
#3 0x00007f14b84be87c in server_v6_run (cls=0x13a47a0, tc=0x7fffb6a037b0) at plugin_transport_http_server.c:973
#4 0x00007f14bc0bcfa2 in run_ready (task=<value optimized out>, task_cls=<value optimized out>) at scheduler.c:684
#5 GNUNET_SCHEDULER_run (task=<value optimized out>, task_cls=<value optimized out>) at scheduler.c:874
#6 0x00007f14bc0c5788 in GNUNET_SERVICE_run (argc=7, argv=<value optimized out>, serviceName=0x4102a4 "transport", opt=<value optimized out>, task=0x402ef0 <run>, task_cls=0x0) at service.c:1673
#7 0x0000000000402ed9 in main (argc=36, argv=0x7fffb6a03630) at gnunet-service-transport.c:609

cont + Strg+C

bt
#0 0x00007f14bb9658b3 in select () from /lib/libc.so.6
#1 0x00007f14babea9bb in MHD_select (daemon=0x13a3490, may_block=0) at daemon.c:1319
#2 0x00007f14babeacd7 in MHD_run (daemon=0x20) at daemon.c:1575
#3 0x00007f14badfe63c in server_v4_run (cls=0x1372b20, tc=0x7fffb6a037b0) at plugin_transport_http_server.c:945
#4 0x00007f14bc0bcfa2 in run_ready (task=<value optimized out>, task_cls=<value optimized out>) at scheduler.c:684
#5 GNUNET_SCHEDULER_run (task=<value optimized out>, task_cls=<value optimized out>) at scheduler.c:874
#6 0x00007f14bc0c5788 in GNUNET_SERVICE_run (argc=7, argv=<value optimized out>, serviceName=0x4102a4 "transport", opt=<value optimized out>, task=0x402ef0 <run>, task_cls=0x0) at service.c:1673
#7 0x0000000000402ed9 in main (argc=32, argv=0x7fffb6a03630) at gnunet-service-transport.c:609


Hope that helps.

Christian Grothoff

2011-12-23 10:51

manager   ~0005168

Sadly, all this says is that this is not a known/fixed issue and that it is also not going to be an obvious one. We will have to find a way to reproduce it.

Matthias Wachs

2012-01-10 18:29

manager   ~0005256

Tried to track down the issue... not possible to reproduce atm

Keep peer running over night to see if it occurs

Christian Grothoff

2012-01-19 22:21

manager   ~0005308

We just got a report (and bugfix) about a possible busy-loop in conjunction with external select (which is what we do in GNUnet with HTTP/HTTPS) and uninitialized memory (which must have, per chance, a particular value). So it seems likely that by fixing 0002085 we might have fixed this issue as well.

amatus, can you update GNU libmicrohttpd to SVN HEAD and see if the issue is still there?

Christian Grothoff

2012-01-19 22:23

manager   ~0005309

Oh, sorry amatus, I didn't read that you were reporting an issue from someone else here. I guess in that case the best choice is likely to call this one resolved ("Update to MHD 0.9.18") and hope that if there is another issue, someone will again report it.

Christian Grothoff

2012-01-19 22:24

manager   ~0005310

Presumably fixed in MHD 0.9.18. SVN 19269 updates that MHD 0.9.18 is now required.

Issue History

Date Modified Username Field Change
2011-12-20 22:55 amatus New Issue
2011-12-20 22:55 amatus Status new => assigned
2011-12-20 22:55 amatus Assigned To => Matthias Wachs
2011-12-20 23:49 amatus OS => Debian
2011-12-20 23:49 amatus OS Version => squeeze
2011-12-20 23:49 amatus Platform => amd64
2011-12-21 10:44 Christian Grothoff Note Added: 0005157
2011-12-21 10:44 Christian Grothoff Note Added: 0005158
2011-12-21 18:05 mifritscher Note Added: 0005161
2011-12-23 10:51 Christian Grothoff Note Added: 0005168
2011-12-23 10:51 Christian Grothoff Priority normal => urgent
2011-12-23 10:51 Christian Grothoff Product Version => 0.9.0
2011-12-23 10:52 Christian Grothoff Severity minor => major
2011-12-23 10:52 Christian Grothoff Category transport service => HTTP transport
2012-01-10 18:29 Matthias Wachs Note Added: 0005256
2012-01-19 22:21 Christian Grothoff Note Added: 0005308
2012-01-19 22:21 Christian Grothoff Relationship added related to 0002085
2012-01-19 22:23 Christian Grothoff Note Added: 0005309
2012-01-19 22:24 Christian Grothoff Note Added: 0005310
2012-01-19 22:24 Christian Grothoff Status assigned => resolved
2012-01-19 22:24 Christian Grothoff Resolution open => fixed
2012-01-19 22:24 Christian Grothoff Assigned To Matthias Wachs => Christian Grothoff
2012-01-19 22:24 Christian Grothoff Fixed in Version => 0.9.2
2012-01-19 22:24 Christian Grothoff Target Version => 0.9.2
2012-02-28 11:05 Christian Grothoff Status resolved => closed