[spr28646] Resetting an Allegroserve worker process
The Bug Handler <[email protected]> Mon, 1 Mar 2004 13:14:54 -0800
| Newsgroups | gmane.lisp.open-source.franz |
|---|---|
| Message-ID | <[email protected]> |
dispatched to jkf No acknowledgement sent @@id: spr28646 @@reference: @@summary: Resetting an Allegroserve worker process @@product: acl @@version: @@component: allegroserve @@customer-name: JP Massar @@customer-company: @@customer-phone: @@customer-email-address: [email protected] @@email-cc: [email protected], [email protected], opensource @@hardware: @@operating-system-and-version: @@implementation-time: @@state: logged 3/1/2004 by jkf @@state: dispatched 3/1/2004 to jkf by jkf @@endstate ------------------------------------------------------------------------------- @@resolution: ------------------------------------------------------------------------------- @@discussion: Return-Path: owner-opensource Delivery-Date: Mon Mar 1 13:08:05 2004 Received: from turtle.franz.com (192.132.95.23) by tiger.franz.com (Allegro Maild v1.1.9) id 000000039111; Mon, 1 Mar 2004 13:08:05 -0800 Received: (from majordomo@localhost) by turtlemail.franz.com (8.11.6/8.9.0) id i21L5dg17102 for opensource-list; Mon, 1 Mar 2004 13:05:39 -0800 X-Authentication-Warning: turtle.franz.com: majordomo set sender to [email protected] using -f Received: from spider.franz.com (spider [10.2.0.4]) by turtlemail.franz.com (8.11.6/8.9.0) with SMTP id i21L5aE17099 for <opensource-local@turtle>; Mon, 1 Mar 2004 13:05:36 -0800 Received: from sccrmhc12.comcast.net (204.127.202.56) by spider.franz.com (Allegro Maild v1.1.12) id 000000497525; Mon, 1 Mar 2004 13:05:36 -0800 Received: from jpm.alum.mit.edu (c-24-7-67-35.client.comcast.net[24.7.67.35]) by comcast.net (sccrmhc12) with SMTP id <2004030120315901200hggjce> (Authid: jamespmassar); Mon, 1 Mar 2004 20:31:59 +0000 Message-Id: <[email protected]> X-Sender: [email protected] X-Mailer: QUALCOMM Windows Eudora Version 6.0.3.0 Date: Mon, 01 Mar 2004 12:33:59 -0800 To: opensource From: JP Massar <[email protected]> Subject: Resetting an Allegroserve worker process Cc: jeff Shrager <[email protected]>, [email protected] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Fi-Border: spider Sender: owner-opensource Precedence: bulk X-Bayes: ham score=0 Suppose that I have put an Allegroserve worker process into an infinite loop, or it's doing some computation I decide to terminate. Suppose the worker process I want to decommission is <p>. The tests I've run using Allegro 6.2 on Windows with localhost show the following behavior: If I do an mp:process-kill on <p>, that destroys the worker process, but restarts the computation using another worker process! If I do an mp:process-reset on <p> the process resets, but it also restarts the computation. There seems to be no way to just terminate and stop! An example: Let's say I have <p> performing the following computation deep inside a servlet that <p> invokes to handle a particular published URL: (dotimes (j 180) (sleep 1) (setq *foo* (list j (incf *xcount*))) where I have independently setq'ed *xcount* to 0 previously. So I can examine *xcount* from another thread, and of course its value increases once a second. Now if I do (mp:process-kill <p>) when, say *foo* = (60 61) <p> goes away. If I examine *foo* it looks something like (4 65). If I examine it again it looks like, e.g., (6 67) The list of processes shows that <p> (one of the worker processes) is gone, but another one is running. If I instead do (mp:process-reset <p>) the same kind of thing happens to *foo* but <p> does not go away. Now, assuming I have not gone insane (because this behavior is quite counterintuitive, especially wrt mp:process-kill) and this is indeed what is happening, and assuming that I have no way of inserting test code into my loop that is running in <p>, to test some dynamic termination flag, is there any way I can just get the worker process to stop itself and Allegroserve not to restart the computation?