Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oops on shutdown #10

Closed
krizhanovsky opened this issue Sep 9, 2014 · 3 comments
Closed

Oops on shutdown #10

krizhanovsky opened this issue Sep 9, 2014 · 3 comments
Assignees
Labels

Comments

@krizhanovsky
Copy link
Contributor

tempesta.sh stop leads to Oops in dmesg:

    [tempesta] Shutdown Tempesta
    [tempesta] Close 1 listening sockets
    [tempesta] Close 1 backend sockets
    [tempesta]   Destroy server socket ffff88003d8e2740
    kmem_cache_destroy tfw_conn_cache: Slab cache still has objects
    CPU: 1 PID: 4475 Comm: rmmod Tainted: G           O 3.10.10+ #7
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
     0000000000000000 ffff88003d573ea8 ffffffff824d2d9c ffff88003d573ec8
     ffffffff8209b75f ffff88003d718200 ffffffffa003de90 ffff88003d573ed8
     ffffffffa0023ae3 ffff88003d573ee8 ffffffffa00377c7 ffff88003d573f78
    Call Trace:
     [<ffffffff824d2d9c>] dump_stack+0x19/0x1b
     [<ffffffff8209b75f>] kmem_cache_destroy+0xd8/0xea
     [<ffffffffa0023ae3>] tfw_connection_exit+0x2b/0x30 [tempesta_fw]
     [<ffffffffa00377c7>] tfw_exit+0x20/0x3b [tempesta_fw]
     [<ffffffff82065cd6>] SyS_delete_module+0x19b/0x215
     [<ffffffff8202103f>] ? do_page_fault+0x9/0xe
     [<ffffffff824d7f12>] system_call_fastpath+0x16/0x1b
@krizhanovsky krizhanovsky self-assigned this Sep 9, 2014
@krizhanovsky krizhanovsky assigned vdmit11 and unassigned krizhanovsky Sep 18, 2014
@krizhanovsky
Copy link
Contributor Author

Should be easy to debug - the Oops is clear enough.

@vdmit11
Copy link
Contributor

vdmit11 commented Sep 26, 2014

The fix turns out to be not so easy:
To empty the cache we need to iterate over all existing connections and close them.
But we don't maintain the list of opened connections.
Alexander, you told that there is a way to do that in the linux kernel, and there is a similar task in ss_drain_accept_queue(), so I'm re-assigning the issue to you.

@vdmit11 vdmit11 assigned krizhanovsky and unassigned vdmit11 Sep 26, 2014
@krizhanovsky
Copy link
Contributor Author

The code evolved significantly since that time and we don't see the bug any more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants