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

Bill St. Clair wws at clozure.com
Wed Jun 17 10:23:09 PDT 2015


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20150617/62a16d3a/attachment.htm>


More information about the Openmcl-devel mailing list