Packet alloc failed error

Christian Helmuth christian.helmuth at ...1...
Sat Dec 26 16:28:22 CET 2015

Hi Guido,

Am 26. Dezember 2015 14:33:41 MEZ, schrieb Guido Witmond <guido at ...231...>:
>First I got this error on the console:
>Ipxe_session_component::_receive(const char*, unsigned int): failed to
>process received packet
>This was the evil code responsible for that:
>  } catch (...) {
>    PDBG("failed to process received packet");
>  }
>Disabling that catch-all and running again gave this error:
>[init -> nic_drv] Uncaught exception of type
>[init -> nic_drv] abort called - thread: 'nic_drv_ep'
>To me this file is where the error gets thrown but not caught:
> repos/os/src/server/nic_bridge/

This is a different component - the nic_bridge. The exception does occur in nic_drv.

>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.

>I've tried to add some code to show details of the packet and why it
>cannot be allocated. However, I can't get this change to get compiled
>and build.
>Here I'm stuck.
>Please help me how can I change the repos/os part and get it to
>Or with whatever else I'm doing wrong.

Would you mind to share your changes as a Github branch. I can't promise anything because of vacation time but if a have a minute the next days I might have a look.

Christian Helmuth
Genode Labs · · /ˈdʒiː.nəʊd/

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

More information about the users mailing list