[Openmcl-devel] error on linux, not on mac os x; error not written to log

Renzo Orsini orsini at unive.it
Wed Jun 17 14:17:35 PDT 2015


Thank to the helpful people on the list, I managed to solve the problem even if I still don’t understand what really happened. I changed the name of the variable second inside usocket:hbo-to-vector-quad, and then reloaded my package. This caused the recompilation of url-rewrite, hunchentoot, ht-simple-ajax, and the error didn’t manifested any more. Then I reverted my change, restored the original version of the function usocket:hbo-to-vector-quad, reloaded again, and at the end the system was still working! Not only, but I discovered that the function usocket:hbo-to-vector-quad is not called any more!

So I suppose that the update with quicklisp went wrong in some very strange way, but I am not sure of this, of course.

Anyway, thanks a lot to Bill and Ralf!

Renzo


> On 17 Jun 2015, at 19:23 , Bill St. Clair <wws at clozure.com> wrote:
> 
> The error was:
> 
> Invalid program: Can't bind or assign to constant SECOND.
> 
> It happened inside usocket:hbo-to-vector-quad:
> 
> (defun hbo-to-vector-quad (integer)
>   "Host-byte-order integer to dotted-quad string conversion utility."
>   (let ((first (ldb (byte 8 24) integer))
>         (second (ldb (byte 8 16) integer))
>         (third (ldb (byte 8 8) integer))
>         (fourth (ldb (byte 8 0) integer)))
>     (vector first second third fourth)))
> 
> ​SECOND is a symbol in the COMMON-LISP package, so binding to it is unkosher, but that works in CCL. Unless somebody globally declares SECOND to be a constant. You'll need to find where that is done, likely by incrementally loading your app sources until the following form returns T:
> 
>   (constantp 'cl:second)​
> 
> The only way that HBO-TO-VECTOR-QUAD could have been compiled as it was, signalling that error, would be for SECOND to be declared as constant before HBO-TO-VECTOR-QUAD was compiled, and then to proceed through the compile-time error (:go in teh debugger). Do you remember doing that?
> 
> -Bill
> 
> 
> On Wed, Jun 17, 2015 at 12:13 PM, Renzo Orsini <orsini at unive.it> wrote:
> Update: I found a way of obtaining a trace by excluding the printing of the log from hunchentoot. From this trace it seems to me that the problem is in hunchentoot itself. Here is a gist of such backtrace:
> 
> https://gist.github.com/renzo-orsini/2ce407b383c25566466f
> 
> Renzo
> 
> > On 17 Jun 2015, at 16:23 , Renzo Orsini <orsini at unive.it> wrote:
> >
> > I have a relatively small hunchentoot web application that worked on mac os x yosemite and linux, and that now does not work on linux any more, maybe due to recent update to all quicklisp packages. The problem is that I cannot even start to debug, because only a criptic message is written on the terminal and then nothing more. Note that the application still works without any problem in mac os x (even after the update of the quicklisp packages: #:hunchentoot #:ht-simple-ajax #:cl-postgres #:simple-date #:html-template #:cl-who #:do-urlencode).
> >
> > Could somebody please help me in at least finding more information?
> >
> > Thank you very much
> >
> > This is the terminal session:
> >
> > hunchentoot at dblab:~$ ccl -n
> > Welcome to Clozure Common Lisp Version 1.10-r16196  (LinuxX8632)!
> >
> > CCL is developed and maintained by Clozure Associates. For more information
> > about CCL visit http://ccl.clozure.com.  To enquire about Clozure's Common Lisp
> > consulting services e-mail info at clozure.com or visit http://www.clozure.com.
> >
> > ? (load "quicklisp/setup.lisp")
> > #P"/var/lib/hunchentoot/quicklisp/setup.lisp"
> > ? (ql:quickload "agid1")
> > To load "agid1":
> >  Load 1 ASDF system:
> >    agid1
> > ; Loading "agid1"
> > .
> > ("agid1")
> > ? (in-package :agid1)
> > #<Package "AGID1">
> > ? (start-web-server)
> > #<EASY-ACCEPTOR (host *, port 9090)>
> >
> > ;;;; at this point I request any page of the application from the browser and this is the message that appear on the terminal:
> >
> > ? error Invalid program: Can't bind or assign to constant SECOND. while writing to error log, error not logged
> > error Invalid program: Can't bind or assign to constant SECOND. while writing to error log, error not logged
> > error Invalid program: Can't bind or assign to constant SECOND. while writing to error log, error not logged
> >
> > ;;; nothing more is written, so I tried to write :?
> >
> > :?
> > The following toplevel commands are available:
> > :?     help
> > :PWD   Print the pathame of the current directory
> > (:CD DIR)  Change to directory DIR (e.g., #p"ccl:" or "/some/dir")
> > (:PROC &OPTIONAL P)  Show information about specified process <p>/all processes
> > (:KILL P)  Kill process whose name or ID matches <p>
> > (:Y &OPTIONAL P)  Yield control of terminal-input to process
> > whose name or ID matches <p>, or to any process if <p> is null
> > Any other form is evaluated and its results are printed out.
> > ? (:proc)
> > 2 :    hunchentoot-listener-*:9090  [Active]
> > 1 : -> listener          [Active]
> > 0 :    Initial           [Sleep]
> > ?
> >
> 
> 
> --
> "Nota automatica aggiunta dal sistema di posta.
> Destina il 5 per mille per sostenere con borse di studio gli studenti
> meritevoli di Ca' Foscari.
> E' un atto volontario, non costa nulla e non sostituisce l'8 per mille.
> Scegli Ca' Foscari: codice fiscale 80007720271
> Please note that the above message is addressed only to individuals filing
> Italian income tax returns."
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> https://lists.clozure.com/mailman/listinfo/openmcl-devel
> 


-- 
"Nota automatica aggiunta dal sistema di posta.
Destina il 5 per mille per sostenere con borse di studio gli studenti 
meritevoli di Ca' Foscari.
E' un atto volontario, non costa nulla e non sostituisce l'8 per mille.
Scegli Ca' Foscari: codice fiscale 80007720271
Please note that the above message is addressed only to individuals filing 
Italian income tax returns."



More information about the Openmcl-devel mailing list