Ticket #297 (closed defect: fixed)
process-enable experiencing broken symptons on rc1.2
|Reported by:||ragerdl||Owned by:||gb|
|Component:||Runtime (threads, GC)||Version:|
|Keywords:||process-enable, parallel, multi-threading||Cc:||kaufmann@…|
Description (last modified by gb) (diff)
Release candidate 1.2 breaks Parallel ACL2 in a repeatable way. Openmcl states that it has been trying to enable a process, despite trying for a second. I noticed that level-1/processes.lisp:process-enable changed from 1.0.2 to rc1.2. It looks like the process is no longer being set as "Active". Perhaps this is just internal book keeping, but maybe calling attention to this change will help figure out why PACL2 doesn't work anymore.
Any ideas? I've included the transcript that replicates the problem. As you can see, it's from the most basic parallel example we have, fibonacci. There are more complex examples too if you're interested.
Thank you, David
lhug-7.cs.utexas.edu% ./saved_acl2 Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (LinuxX8664)! ACL2 Version 3.3 built May 5, 2008 02:56:57. Copyright (C) 2007 University of Texas at Austin ACL2 comes with ABSOLUTELY NO WARRANTY. This is free software and you are welcome to redistribute it under certain conditions. For details, see the GNU General Public License. Initialized with (INITIALIZE-ACL2 'INCLUDE-BOOK *ACL2-PASS-2-FILES*). See the documentation topic note-3-3 for recent changes. Note: We have modified the prompt in some underlying Lisps to further distinguish it from the ACL2 prompt. NOTE!! Proof trees are disabled in ACL2. To enable them in emacs, look under the ACL2 source directory in interface/emacs/README.doc; and, to turn on proof trees, execute :START-PROOF-TREE in the ACL2 command loop. Look in the ACL2 documentation under PROOF-TREE. ACL2 Version 3.3. Level 1. Cbd "/v/filer4b/v8q002/hvg/parallel/pacl2-3.3/acl2-sources/". Distributed books directory "/v/filer4b/v8q002/hvg/parallel/pacl2-3.3/acl2-sources/books/". Type :help for help. Type (good-bye) to quit completely out of ACL2. ACL2 !>(include-book "parallel/fibonacci" :dir :system) Summary Form: ( INCLUDE-BOOK "parallel/fibonacci" ...) Rules: NIL Warnings: None Time: 0.07 seconds (prove: 0.00, print: 0.00, other: 0.07) "/v/filer4b/v8q002/hvg/parallel/pacl2-3.3/acl2-sources/books/parallel/fibonacci.lisp" ACL2 !>(time$ (fib 40)) (EV-REC (FARGN FORM 1) ALIST W (DECREMENT-BIG-N BIG-N) SAFE-MODE GC-OFF LATCHES HARD-ERROR-RETURNS-NILP) took 4,643,664 microseconds (4.643664 seconds) to run with 8 available CPU cores. During that period, 4,644,291 microseconds (4.644291 seconds) were spent in user mode 0 microseconds (0.000000 seconds) were spent in system mode 16 bytes of memory allocated. 1 minor page faults, 0 major page faults, 0 swaps. 102334155 ACL2 !>(time$ (pfib 35)) (EV-REC (FARGN FORM 1) ALIST W (DECREMENT-BIG-N BIG-N) SAFE-MODE GC-OFF LATCHES HARD-ERROR-RETURNS-NILP) took 157,523 microseconds (0.157523 seconds) to run with 8 available CPU cores. During that period, 380,023 microseconds (0.380023 seconds) were spent in user mode 4,001 microseconds (0.004001 seconds) were spent in system mode 4,494 microseconds (0.004494 seconds) was spent in GC. 37,584 bytes of memory allocated. 322 minor page faults, 0 major page faults, 0 swaps. 9227465 ACL2 !>(time$ (pfib 40)) > Error: Unable to enable process #<PROCESS Worker thread(38) [Active] #x300043A1C8ED>; have been trying for 1 seconds. > While executing: PROCESS-ENABLE, in process Worker thread(35). ;;; ;;; #<PROCESS Worker thread(35) [Active] #x300043A1A69D> requires access to Shared Terminal Input ;;; C-c C-c> Break: interrupt signal > While executing: CCL::%PROCESS-WAIT-ON-SEMAPHORE-PTR, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Return from BREAK. > Type :? for other options. 1 > [RAW LISP] :proc 38 : Worker thread [Active] 35 : Worker thread [semaphore wait] (Requesting terminal input) 14 : Worker thread [semaphore wait] 1 : -> listener [Active] 0 : Initial [Active] 1 > [RAW LISP] (:y 35) ;;; ;;; Shared Terminal Input is now owned by #<PROCESS Worker thread(35) [Active] #x300043A1A69D> ;;; > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Keep trying. > Type :? for other options. 1 > [RAW LISP] :b (2AAAAD619B18) : 0 (PROCESS-ENABLE #<PROCESS Worker thread(38) [Active] #x300043A1C8ED> [...]) 405 (2AAAAD619B68) : 1 (%PROCESS-RUN-FUNCTION '(:NAME "Worker thread") #<COMPILED-LEXICAL-CLOSURE (:INTERNAL ACL2::RUN-THREAD) #x300043A1CD7F> NIL) 1373 (2AAAAD619C58) : 2 (PROCESS-RUN-FUNCTION "Worker thread" #<COMPILED-LEXICAL-CLOSURE (:INTERNAL ACL2::RUN-THREAD) #x300043A1CD7F> [...]) 213 (2AAAAD619C98) : 3 (SPAWN-WORKER-THREADS-IF-NEEDED) 757 (2AAAAD619CC8) : 4 (PARALLELIZE-CLOSURE-LIST '(# #) [...]) 669 (2AAAAD619D78) : 5 (PARALLELIZE-FN 'ACL2::IDENTITY-LIST '(# #) [...]) 125 (2AAAAD619DA8) : 6 (PLET-FN '(# #) #<Compiled-function (:INTERNAL ACL2::PFIB) (Non-Global) #x300043A0488F>) 45 (2AAAAD619DD0) : 7 (EVAL-AND-SAVE-RESULT #S(ACL2::PARALLELISM-PIECE :THREAD-ARRAY #(#<# #(35) [#] #x300043A1A69D> NIL) :RESULT-ARRAY #(NIL #) ...)) 133 (2AAAAD619E08) : 8 (CONSUME-WORK-ON-WORK-QUEUE-WHEN-ITS-THERE) 4677 (2AAAAD619EB8) : 9 (RUN-PROCESS-INITIAL-FORM #<PROCESS Worker thread(35) [Active] #x300043A1A69D> '(#)) 717 (2AAAAD619F48) : 10 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<PROCESS Worker thread(35) [Active] #x300043A1A69D> '(#)) 397 (2AAAAD619F98) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 293 1 >