Skip to content

Eio_posix-based process runs into infinite loop after a few hours #495

@smondet

Description

@smondet

I have long-running server using Cohttp and Eio_posix (because so far it uses Eio_posix.Low_level.Process). Once in a while after a few hours of running fine it apparently randomly turns into an infinite loop using 100% of one CPU.

sudo strace -p <pid> says (thousands of lines like this per second):

[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
[pid 3458264] rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0

It's hard to reproduce reliably, let me know if there is anything I should to inspect the process better.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions