[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