[ https://issues.apache.org/jira/browse/THRIFT-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16381460#comment-16381460 ]
ASF GitHub Bot commented on THRIFT-82: -------------------------------------- Github user jeking3 commented on the issue: https://github.com/apache/thrift/pull/1412 Best I can tell there seems to be some sort of timing or logic error. Builds will randomly fail after writing a fasl, apparently renaming it, then being unable to find it. This is the "ubsan" build job which runs "make precross": https://api.travis-ci.org/v3/job/347498508/log.txt ``` ; compiling (DEF-STRUCT "structb" ...) ; compiling (DEF-SERVICE "ThriftTest" ...) ; compiling (DEF-SERVICE "SecondService" ...) ; /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl written ; compilation finished in 0:00:06.905 ``` then immediately after: ``` Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001E066F3}>: Failed to find the TRUENAME of /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl: No such file or directory Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001E066F3}> 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}> #<unavailable argument>) 1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}>) 2: (INVOKE-DEBUGGER #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}>) 3: (ERROR SB-INT:SIMPLE-FILE-ERROR :PATHNAME #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" :FORMAT-CONTROL "~@<~?: ~2I~_~A~:>" :FORMAT-ARGUMENTS ("Failed to find the TRUENAME of ~A" (#P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl") "No such file or directory")) 4: ((LABELS SB-IMPL::RESOLVE-PROBLEMATIC-SYMLINK :IN SB-IMPL::QUERY-FILE-SYSTEM) NIL) 5: (SB-IMPL::QUERY-FILE-SYSTEM #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" :TRUENAME T) 6: (TRUENAME #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl") 7: (RENAME-FILE #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.fasl") 8: (UIOP/LISP-BUILD:COMPILE-FILE* #P"/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.lisp" :OUTPUT-FILE #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.fasl" :EXTERNAL-FORMAT :UTF-8 :WARNINGS-FILE NIL) 9: (ASDF/LISP-ACTION:PERFORM-LISP-COMPILATION #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">) 10: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">) 11: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">) [fast-method] 12: ((:METHOD ASDF/PLAN:PERFORM-PLAN (LIST)) ((#1=#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/SYSTEM:SYSTEM "puri">) (#1# . #<ASDF/SYSTEM:SYSTEM "split-sequence">) (#1# . #<ASDF/SYSTEM:SYSTEM "closer-mop">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-utf-8">) (#1# . #<ASDF/SYSTEM:SYSTEM "ieee-floats">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-gray-streams">) (#1# . #<ASDF/SYSTEM:SYSTEM "alexandria">) (#1# . #<ASDF/SYSTEM:SYSTEM "thrift">) (#2=#<ASDF/LISP-ACTION:PREPARE-OP > . #<ASDF/SYSTEM:SYSTEM #3="thrift-gen-thrifttest">) (#2# . #4=#<ASDF/LISP-ACTION:CL-SOURCE-FILE #3# "ThriftTest-types">) (#1# . #4#) (#<ASDF/LISP-ACTION:LOAD-OP > . #4#) ...) :FORCE NIL) [fast-method] 13: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)) 14: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) ((#1=#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/SYSTEM:SYSTEM "puri">) (#1# . #<ASDF/SYSTEM:SYSTEM "split-sequence">) (#1# . #<ASDF/SYSTEM:SYSTEM "closer-mop">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-utf-8">) (#1# . #<ASDF/SYSTEM:SYSTEM "ieee-floats">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-gray-streams">) (#1# . #<ASDF/SYSTEM:SYSTEM "alexandria">) (#1# . #<ASDF/SYSTEM:SYSTEM "thrift">) (#2=#<ASDF/LISP-ACTION:PREPARE-OP > . #<ASDF/SYSTEM:SYSTEM #3="thrift-gen-thrifttest">) (#2# . #4=#<ASDF/LISP-ACTION:CL-SOURCE-FILE #3# "ThriftTest-types">) (#1# . #4#) (#<ASDF/LISP-ACTION:LOAD-OP > . #4#) ...)) [fast-method] 15: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)) 16: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1001E5AF13}>) [fast-method] 17: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">) [fast-method] 18: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">) 19: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 20: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">) [fast-method] 21: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST) 22: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 23: (ASDF/CACHE:CALL-WITH-ASDF-CACHE #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1001E5664B}> :OVERRIDE NIL :KEY NIL) 24: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST) [fast-method] 25: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST) [fast-method] 26: (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) 27: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) #<NULL-LEXENV>) 28: (EVAL-TLF (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) 6 NIL) 29: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) 6) 30: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) :CURRENT-INDEX 6) 31: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1001E1A35B}> #<SB-C::SOURCE-INFO {1001E1A313}> SB-C::INPUT-ERROR-IN-LOAD) 32: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading") 33: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> NIL) 34: (LOAD #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT) 35: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}>) 36: ((FLET #:WITHOUT-INTERRUPTS-BODY-146 :IN SB-IMPL::PROCESS-SCRIPT)) 37: (SB-IMPL::PROCESS-SCRIPT "make-test-client.lisp") 38: (SB-IMPL::TOPLEVEL-INIT) 39: ((FLET #:WITHOUT-INTERRUPTS-BODY-77 :IN SAVE-LISP-AND-DIE)) 40: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE)) unhandled condition in --disable-debugger mode, quitting ; ; compilation unit aborted ; caught 2 fatal ERROR conditions Makefile:635: recipe for target 'TestClient' failed make[2]: *** [TestClient] Error 1 make[2]: Leaving directory '/thrift/src/test/cl' ``` Is it possible that the RENAME implementation in sbcl is buggy when the source and destination are the same, and perhaps it exhibits some undefined behavior? Just a wild guess... > Common Lisp support > ------------------- > > Key: THRIFT-82 > URL: https://issues.apache.org/jira/browse/THRIFT-82 > Project: Thrift > Issue Type: New Feature > Reporter: Patrick Collison > Assignee: James E. King, III > Priority: Major > Fix For: 0.12.0 > > Attachments: thrift-cl.patch > > > Common Lisp support is attached -- This message was sent by Atlassian JIRA (v7.6.3#76005)