couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Kocoloski (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COUCHDB-397) POST _restart only restarts couch_server process
Date Mon, 29 Jun 2009 18:40:47 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12725309#action_12725309
] 

Adam Kocoloski commented on COUCHDB-397:
----------------------------------------

Ok, let's review:

supervisor:terminate_child(couch_primary_services, couch_server)

This call tells the supervisor process registered as couch_primary_services to terminate its
child process with id couch_server.  The child specification for couch_server specifies a
brutal_kill shutdown strategy.  This means that the couch_server process will not execute
the code in its terminate function; it will just die.

If couch_stats_* were linked to couch_server and were not trapping exits, this would probably
be enough to reset the counters.  But that's not the case.

A sneaky hack that you could use to bring down the entire server would be 

exit(whereis(couch_config), any_reason_you_feel_like).

couch_server_sup has three children: couch_config, couch_primary_services, and couch_secondary_services.
 If you kill one, the supervisor will bring them all down and restart them (this is the one_for_all
supervision strategy).  couch_config doesn't trap exits, so it's an easy kill :-)


> POST _restart only restarts couch_server process
> ------------------------------------------------
>
>                 Key: COUCHDB-397
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-397
>             Project: CouchDB
>          Issue Type: Bug
>    Affects Versions: 0.9
>            Reporter: Adam Kocoloski
>            Assignee: Adam Kocoloski
>
> Perhaps this is by design, but POSTing to /_restart only restarts the couch_server process.
 It does not restart any of the other myriad processes CouchDB relies on for operation.  In
particular, this causes the stats test suite to occasionally fail, because the stats counters
do not get reset.  The test that fails is
> Assertion 'open_databases > 0 && max >= open_databases, name' failed: should
keep the same number of open databases when reaching the max_dbs_open limit

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message