From: Bruno H. <br...@cl...> - 2017-05-28 19:37:45
|
> Meanwhile, I'm seeing a different crash (in a build-porting64-gcc-debug_gcsafety > build with -DOLD_GC), but also related to socket streams: > > > (MULTIPLE-VALUE-BIND (RUN ARGS) (CMD-ARGS) (LET ((SE (SOCKET-SERVER))) (RUN-PROGRAM RUN :ARGUMENTS (APPEND ARGS (LIST "-q" "-q" "-x" (FORMAT NIL "(close (socket:socket-connect ~D))" (SOCKET-SERVER-PORT SE)))) :WAIT NIL :INPUT NIL :OUTPUT NIL) (UNWIND-PROTECT (WITH-OPEN-STREAM (SO (SOCKET-ACCEPT SE)) (LIST (SOCKET-STATUS SO) (WRITE-LINE "foo" SO) (SOCKET-STATUS SO) (CHECK-OS-ERROR (READ-CHAR SO) (:ECONNRESET 104)) (NULL (MEMBER (SOCKET-STATUS SO) '(:EOF :APPEND))) (CHECK-OS-ERROR (WRITE-LINE "bar" SO) (:EPIPE 32)) (NULL (MEMBER (SOCKET-STATUS SO) '(:EOF :APPEND))) (HANDLER-CASE (READ-CHAR SO) (END-OF-FILE (C) (PRINC 'READ-CHAR) (PRINC-ERROR C) 'END-OF-FILE)))) (SOCKET-SERVER-CLOSE SE)))) > STACK size: 98238 [0x300000bfe00 0x30000000010] > > [../src/stream.d:6199] [OS-STREAM-ERROR]: OS-STREAM-ERROR(104): Connection reset by peer > Makefile:25: die Regel für Ziel „tests“ scheiterte The reason here seems to be a stream of type enum_strmtype_twoway_socket, of the correct reclength, where the last element, ->strm_twoway_socket_output, has not been updated by GC. Whereas the second-to-last element, ->strm_twoway_socket_input has been updated. Bruno |