On 12/26/15 16:28, Christian Helmuth wrote:
Hi Guido,
Am 26. Dezember 2015 14:33:41 MEZ, schrieb Guido Witmond <guido@...231...>:
It looks to me that the system dies on an unexpected packet from the outside. And I don't want to place a linux based firewall in front of Genode. ;-)
I don't know what you mean by "unexpected" - the nic_drv always expects packets from the ethernet. To forward these packets to its single client, it has to allocate a buffer and a packet descriptor in the incoming packet stream. For some reason this fails, mostly because the client got stuck and does no longer acknowledge incoming packets resulting in failed allocations for further packets.
What I meant by unexpected is a packet that doesn't get parsed correctly and triggers an exception, like a Ping of Death. I jumped to that idea because it was independent of the amount of traffic I generated.
Before I took out the catchall I would get the 'failed to process received packet' error multiple times, but again, no apparent link to the amount of http-traffic.
I've reinstated the catchall and get some more 'measurements'.
- there could be more than one of these messages; - the system still responds to pings; - listening on a different port than 80 also gives these error messages; - the hanging seems independent of the messages;
But at a different port than 80, I don't seem to experience hangs. It could be the lighttpd that receives a request from somewhere out there that makes it hang. So more like a Request of Death.
I'll start with chccking the input validation of lighttpd before badmouthing the kernel. Expect more from me soon.
Cheers, Guido.