sb-impl::find-a-pty issues

Bug #530473 reported by Peter Seibel
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Triaged
Low
Unassigned

Bug Description

1. Running the tests on 1.0.36 on an x86/debian VPS I get an "Unhandled error" in run-program.impure.lisp

1. sh run-tests.sh run-program.impure.lisp

Get this:

::: Running :RUN-PROGRAM-CAT-2
::: Success :RUN-PROGRAM-CAT-2
Unhandled TYPE-ERROR: The value NIL is not of type SIMPLE-STRING.
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {B4C683D}>)[:EXTERNAL]
1: (BACKTRACE 536870911 #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {9109A99}>)
2: ((FLET #:LAMBDA4) #<TYPE-ERROR {B4C5941}>)
3: (SIGNAL #<TYPE-ERROR {B4C5941}>)[:EXTERNAL]
4: (ERROR TYPE-ERROR)[:EXTERNAL]
5: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER
    #<unavailable argument>
    #.(SB-SYS:INT-SAP #XB7AF4650)
    #<
      SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #XB7AF432C :TYPE (*
                                                            (STRUCT
                                                             SB-VM::OS-CONTEXT-T-STRUCT))>
    (144 16))
6: (SB-KERNEL:INTERNAL-ERROR
    #.(SB-SYS:INT-SAP #XB7AF432C)
    #<unavailable argument>)
7: ("foreign function: #x80670EB")
8: ("foreign function: #x8052F68")
9: ("foreign function: #x80588DE")
10: ("foreign function: #x80567DB")
11: (SB-UNIX:UNIX-OPEN NIL 2 438)[:EXTERNAL]
12: (SB-IMPL::FIND-A-PTY)
13: (SB-IMPL::OPEN-PTY T (0))[:EXTERNAL]
14: (RUN-PROGRAM "/bin/ed" ("run-program-ed-test.tmp"))[:EXTERNAL]
15: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (RUN-PROGRAM "/bin/ed" (LIST *TMPFILE*) :WAIT NIL :PTY T)
     #<NULL-LEXENV>)
16: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (SB-IMPL::%DEFPARAMETER '*ED*
                             (RUN-PROGRAM "/bin/ed" (LIST *TMPFILE*) :WAIT NIL
                                          :PTY T)
                             NIL 'NIL (SB-C:SOURCE-LOCATION))
     #<NULL-LEXENV>)
17: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE)
       (SB-IMPL::%DEFPARAMETER '*ED*
                               (RUN-PROGRAM "/bin/ed" (LIST *TMPFILE*) :WAIT
                                            NIL :PTY T)
                               NIL 'NIL (SB-C:SOURCE-LOCATION)))
     #<NULL-LEXENV>)
18: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (DEFPARAMETER *ED*
       (RUN-PROGRAM "/bin/ed" (LIST *TMPFILE*) :WAIT NIL :PTY T))
     #<NULL-LEXENV>)
19: (SB-FASL::LOAD-AS-SOURCE
     #<SB-SYS:FD-STREAM
       for "file /home/peter/sbcl-1.0.36/tests/run-program.impure.lisp"
       {B258F69}>
     NIL
     NIL)
20: ((FLET SB-FASL::LOAD-STREAM)
     #<SB-SYS:FD-STREAM
       for "file /home/peter/sbcl-1.0.36/tests/run-program.impure.lisp"
       {B258F69}>
     NIL)
21: (LOAD #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp")[:EXTERNAL]
22: ((LAMBDA ()))
23: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (LET ((RUN-TESTS::FILE
            #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp")
           (RUN-TESTS::*BREAK-ON-ERROR* NIL))
       (FORMAT T "// Running ~a~%" RUN-TESTS::FILE)
       (RESTART-CASE (HANDLER-BIND ((ERROR
                                     (LAMBDA (CONDITION)
                                       (PUSH
                                        (LIST :UNHANDLED-ERROR RUN-TESTS::FILE)
                                        *FAILURES*)
                                       (COND
                                        (RUN-TESTS::*BREAK-ON-ERROR*
                                         (REALLY-INVOKE-DEBUGGER CONDITION))
                                        (T
                                         (FORMAT *ERROR-OUTPUT*
                                                 "~&Unhandled ~a: ~a~%"
                                                 (TYPE-OF CONDITION) CONDITION)
                                         (BACKTRACE)))
                                       (INVOKE-RESTART 'RUN-TESTS::SKIP-FILE))))
                       (LOAD
                        #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp"))
         (RUN-TESTS::SKIP-FILE NIL (FORMAT T ">>>~a<<<~%" *FAILURES*)))
       (REPORT-TEST-STATUS)
       (QUIT :UNIX-STATUS 104))
     #<NULL-LEXENV>)
24: (RUN-TESTS::RUN-IN-CHILD-SBCL
     #<unavailable argument>
     ((IN-PACKAGE :CL-USER) (USE-PACKAGE :TEST-UTIL) (USE-PACKAGE :ASSERTOID)
      (SETF *BREAK-ON-FAILURE* NIL) (SETF *BREAK-ON-EXPECTED-FAILURE* NIL)
      (LET ((RUN-TESTS::FILE
             #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp")
            (RUN-TESTS::*BREAK-ON-ERROR* NIL))
        (FORMAT T "// Running ~a~%" RUN-TESTS::FILE)
        (RESTART-CASE (HANDLER-BIND ((ERROR
                                      (LAMBDA (CONDITION)
                                        (PUSH
                                         (LIST :UNHANDLED-ERROR
                                               RUN-TESTS::FILE)
                                         *FAILURES*)
                                        (COND
                                         (RUN-TESTS::*BREAK-ON-ERROR*
                                          (REALLY-INVOKE-DEBUGGER CONDITION))
                                         (T
                                          (FORMAT *ERROR-OUTPUT*
                                                  "~&Unhandled ~a: ~a~%"
                                                  (TYPE-OF CONDITION)
                                                  CONDITION)
                                          (BACKTRACE)))
                                        (INVOKE-RESTART
                                         'RUN-TESTS::SKIP-FILE))))
                        (LOAD
                         #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp"))
          (RUN-TESTS::SKIP-FILE NIL (FORMAT T ">>>~a<<<~%" *FAILURES*)))
        (REPORT-TEST-STATUS)
        (QUIT :UNIX-STATUS 104))))
25: (RUN-TESTS::IMPURE-RUNNER
     (#P"/home/peter/sbcl-1.0.36/tests/alien.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/arith.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/backq.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/bivalent-stream.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/break-on-signals.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/callback.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos-1.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos-add-remove-method.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos-cache.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos-interrupts.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos-typechecking.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/clos.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/compare-and-swap.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/compiler.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/compound-cons.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/condition.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/ctor.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/deadline.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/debug.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/defglobal.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/define-compiler-macro.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/defstruct.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/deftype.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/destructure.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/dynamic-extent.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/enc-cn.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/enc-jpn.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/eval.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/exhaust.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/external-format.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/float.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/foreign-stack-alignment.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/full-eval.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/gc.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/gray-streams.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/hash.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/info.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/interface.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/kill-non-lisp-thread.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/load.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/loop.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/macroexpand.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/map-tests.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-23.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-24.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-25.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-26.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-27.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-28.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop-29.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/mop.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/package-locks.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/packages.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/pathnames.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/pprint.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/print.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/profile.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/properties.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/reader.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/run-program.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/seq.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/setf.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/signals.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/smoke.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/static-alloc.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/step.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/stream.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/swap-lispobjs.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/symbol.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/threads.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/timer.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/type.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/unwind-to-frame-and-call.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/vector.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/walk.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/win32-foreign-stack-unwind.impure.lisp"
      #P"/home/peter/sbcl-1.0.36/tests/with-compilation-unit.impure.lisp")
     #<FUNCTION RUN-TESTS::LOAD-TEST>)
26: (RUN-TESTS::RUN-ALL)
27: (SB-INT:SIMPLE-EVAL-IN-LEXENV (RUN-TESTS::RUN-ALL) #<NULL-LEXENV>)
28: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS
     ((:EVAL . "(with-compilation-unit () (load \"run-tests.lisp\"))")
      (:EVAL . "(run-tests::run-all)")))
29: (SB-IMPL::TOPLEVEL-INIT)
30: ((LABELS SB-IMPL::RESTART-LISP))
>>>((UNHANDLED-ERROR /home/peter/sbcl-1.0.36/tests/run-program.impure.lisp))<<<
// Running impure tests (#<FUNCTION RUN-TESTS::CLOAD-TEST>)
// Running impure tests (#<FUNCTION RUN-TESTS::SH-TEST>)

Finished running tests.
Status:
 Unhandled error run-program.impure.lisp
test failed, expected 104 return code, got 1
peter@c4:~/sbcl-1.0.36/tests$

nyef says:

<nyef> Looks like you might have gotten something silly from ptsname.

<nyef> And otherwise I would consider filing a bug about, at the very least,
       sb-impl::find-a-pty not checking for an error response from ptsname(3)
       and not using ptsname_r(3) when available. [20:13]

2. SBCL 1.0.36

3. Linux c4 2.6.18-6-xen-686 #1 SMP Fri Aug 21 02:11:30 UTC 2009 i686 GNU/Linux

4. (:ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS
 :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86 :UNIX :ELF
 :LINUX :SB-THREAD :LARGEFILE :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD
 :C-STACK-IS-CONTROL-STACK :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP
 :RAW-INSTANCE-INIT-VOPS :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-VECTORS
 :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-FIXED-OBJECTS :ALIEN-CALLBACKS
 :CYCLE-COUNTER :INLINE-CONSTANTS :LINKAGE-TABLE :OS-PROVIDES-DLOPEN
 :OS-PROVIDES-PUTWC :OS-PROVIDES-SUSECONDS-T)

Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

QFT:

       sb-impl::find-a-pty not checking for an error response from ptsname(3)
       and not using ptsname_r(3) when available. [20:13]

summary: - Unhandled exception in run-program.impure.lisp tests
+ sb-impl::find-a-pty issues
Changed in sbcl:
status: New → Confirmed
importance: Undecided → Low
Changed in sbcl:
status: Confirmed → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.