[hunchentoot-devel] Error on LWW 4.4.6: -1 cannot be converted to foreign type (:UNSIGNED-INTEGER-TYPE 32).

Hans Hübner hans.huebner at gmail.com
Thu Jan 19 12:36:14 UTC 2012


Apparently, Lispworks invokes the callback function for new incoming
connections with a socket argument value of -1:

(defmethod start-listening ((acceptor acceptor))
  (multiple-value-bind (listener-process startup-condition)
      (comm:start-up-server :service (acceptor-port acceptor)
                            :address (acceptor-address acceptor)
                            :process-name (format nil "Hunchentoot
listener \(~A:~A)"
                                                  (or
(acceptor-address acceptor) "*")
                                                  (acceptor-port acceptor))
                            ;; this function is called once on startup - we
                            ;; use it to check for errors
                            :announce (lambda (socket &optional condition)
                                        (declare (ignore socket))
                                        (when condition
                                          (error condition)))
                            ;; this function is called whenever a connection
                            ;; is made
                            :function (lambda (handle)
                                        (unless (acceptor-shutdown-p acceptor)
                                          (handle-incoming-connection
                                           (acceptor-taskmaster
acceptor) handle)))
                            ;; wait until the acceptor was successfully started
                            ;; or an error condition is returned
                            :wait t)
    (when startup-condition
      (error startup-condition))
    (mp:process-stop listener-process)
    (setf (acceptor-process acceptor) listener-process)
    (values)))

I am not sure whether this is expected or legal.  I'd ask the
Lispworks folks about it.

-Hans
On Thu, Jan 19, 2012 at 1:12 PM, Dmitriy Ivanov <divanov11 at gmail.com> wrote:
> Hello folks,
>
> I have bumped into the error while playing around:
>
> 1. (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor
>       :port 4242
>       :write-timeout nil)) ; for lispworks4
> 2. Browsing results from test-handlers.lisp.
>
> It worked fine until I made a break for half an hour. When I come back to my
> computer and click on some link, LispWorks signaled.
>
> The odd thing is that in call to
> COMM::LISTEN-AND-ATTACH-STREAM-FROM-SOCKET,
>  COMM::SOCKET : 464
>
> But in call to (METHOD HUNCHENTOOT:CREATE-REQUEST-HANDLER-THREAD
> (HUNCHENTOOT:ONE-THREAD-PER-CONNECTION-TASKMASTER T))
>  HUNCHENTOOT::SOCKET    : -1
>
> Looks like LispWorks (or even Windows) error.
> Has anybody observed something like this?
>
> The backtrace excerpt is below.
> ---------------------------------------------------
> Condition: -1 cannot be converted to foreign type (:UNSIGNED-INTEGER-TYPE
> 32).
>
> Call to (SUBFUNCTION 2 COMM:START-UP-SERVER) (offset 43)
>  COMM::SOCKET : NIL
>  CONDITION    : #<FLI:FOREIGN-TYPE-ERROR 206AB0CC>
>
> Call to (SUBFUNCTION 1 COMM::LISTEN-AND-ATTACH-STREAM-NO-ERROR) (offset 41)
>  CONDITION : #<FLI:FOREIGN-TYPE-ERROR 206AB0CC>
>
> Binding frame:
>  CONDITIONS::*IN-SIGNAL-CATCH* : T
>
> Call to SIGNAL (offset 699)
>  CONDITIONS::DATUM     : #<FLI:FOREIGN-TYPE-ERROR 206AB0CC>
>  CONDITIONS::ARGUMENTS : NIL
>
> Binding frame:
>  CONDITIONS::*IN-SIGNAL-CATCH* : NIL
>
> Catch frame: CONDITIONS::SIGNAL-CATCH
>
> Binding frame:
>  CONDITIONS::*BROKEN-ON-SIGNALS* : NIL
>
> Catch frame: #<unbound>
>
> Binding frame:
>  FLI::*FOREIGN-OBJECT-SCOPE-STACK-DETAILS* : #(16 #1=(8519856 . 4096)
> (#1#))
>
> Call to COMM::GETPEERNAME (offset 227)
>  COMM::S       : -1
>  COMM::NAME    : #<Pointer to type (:STRUCT COMM::SOCKADDR) = #x008200B0>
>  COMM::NAMELEN : 16
>
> Catch frame: #<unbound>
>
> Binding frame:
>  FLI::*FOREIGN-OBJECT-SCOPE-STACK-DETAILS* : #(0 NIL NIL)
>
> Call to COMM::GET-SOCKET-ADDRESS-AUX (offset 370)
>  COMM::SOCKET : -1
>  FUNCTION     : COMM::GETPEERNAME
>
> Call to HUNCHENTOOT::GET-PEER-ADDRESS-AND-PORT (offset 43)
>  HUNCHENTOOT::SOCKET : -1
>
> Call to (METHOD HUNCHENTOOT:CREATE-REQUEST-HANDLER-THREAD
> (HUNCHENTOOT:ONE-THREAD-PER-CONNECTION-TASKMASTER T)) (offset 97)
>  HUNCHENTOOT:TASKMASTER :
> #<HUNCHENTOOT:ONE-THREAD-PER-CONNECTION-TASKMASTER 22087454>
>  HUNCHENTOOT::SOCKET    : -1
>  CLOS::.ISL.            : :DONT-KNOW
>
> Catch frame: #<unbound>
>
> Call to COMM::LISTEN-AND-ATTACH-STREAM-FROM-SOCKET (offset 133)
>  COMM::SOCKET : 464
>  FUNCTION     : #<closure (SUBFUNCTION 3 (METHOD HUNCHENTOOT:START-LISTENING
> (HUNCHENTOOT:ACCEPTOR))) 22087F32>
>
> Catch frame: (NIL)
>
> Call to COMM::LISTEN-AND-ATTACH-STREAM (offset 619)
>  FUNCTION       : #<closure (SUBFUNCTION 3 (METHOD HUNCHENTOOT:START-LISTENING
> (HUNCHENTOOT:ACCEPTOR))) 22087F32>
>  COMM::SERVICE  : 4242
>  COMM::ANNOUNCE : #<closure (SUBFUNCTION 2 COMM:START-UP-SERVER) 22087F62>
>  COMM::BACKLOG  : 5
>  COMM::ADDRESS  : NIL
>
> Catch frame: (NIL)
>
> Call to COMM::LISTEN-AND-ATTACH-STREAM-NO-ERROR (offset 284)
>  FUNCTION       : #<closure (SUBFUNCTION 3 (METHOD HUNCHENTOOT:START-LISTENING
> (HUNCHENTOOT:ACCEPTOR))) 22087F32>
>  COMM::SERVICE  : 4242
>  COMM::ANNOUNCE : #<closure (SUBFUNCTION 2 COMM:START-UP-SERVER) 22087F62>
>  COMM::BACKLOG  : 5
>  COMM::ADDRESS  : NIL
>
> Catch frame: MP::PROCESS-TAG
> ...
> --
> Sincerely,
> Dmitriy Ivanov
> lisp.ystok.ru
>
>
>
>
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel




More information about the Tbnl-devel mailing list