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

Flush chttpd_db monitor refs on demonitor #4906

Merged
merged 1 commit into from
Dec 12, 2023

Commits on Dec 12, 2023

  1. Flush chttpd_db monitor refs on demonitor

    This ensures that the coordinator process flushes on demonitoring of the
    attachment refs in chttpd_db. The problem here is that it's possible to
    receive a 'DOWN' message for the monitor ref that is not receive'ed,
    causing it to stick around in the coordinator message queue while the
    next http request is handled. The pending message will not become
    apparent until the next fabric call is invoked, as fabric expects to
    have full access to all messages in the calling process, an expectation
    which is violated by the pending message and causes a case clause crash
    in the fabric receive message callbacks.
    
    I noticed this during eunit runs with stubbed attachment handles that
    generate an immediate noproc message on the monitor call. Normal
    operations should not result in an immediate noproc result on monitoring
    the attachment process, however, any failure that causes the attachment
    process to fail between acquisition of the refs and the demonitor calls
    will induce this bug, causing the next http request handled by the
    particular chttpd coordinator pool processs to fail on whatever next
    fabric call is made.
    chewbranca committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    c3c364c View commit details
    Browse the repository at this point in the history