[ https://issues.apache.org/jira/browse/THRIFT-4676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16704655#comment-16704655 ]
Allen George commented on THRIFT-4676: -------------------------------------- This is the clearest example of the problem I've found to date: [Travis Build Log for Job 454293219|https://api.travis-ci.org/v3/job/454293219/log.txt] Relevant section: {noformat} make[2]: Entering directory '/thrift/src/tutorial/cl' /thrift/src/compiler/cpp/thrift --gen cl -r ../../tutorial/tutorial.thrift /usr/local/bin/sbcl --script make-tutorial-client.lisp /usr/local/bin/sbcl --script make-tutorial-server.lisp WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/puri-20180228-git/puri.asd" contains definition for system "puri-tests". Please only define "puri" and secondary systems with a name starting with "puri/" (e.g. "puri/test") in that file. WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/puri-20180228-git/puri.asd" contains definition for system "puri-tests". Please only define "puri" and secondary systems with a name starting with "puri/" (e.g. "puri/test") in that file. WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/trivial-utf-8-20111001-darcs/trivial-utf-8.asd" contains definition for system "trivial-utf-8-tests". Please only define "trivial-utf-8" and secondary systems with a name starting with "trivial-utf-8/" (e.g. "trivial-utf-8/test") in that file. WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/ieee-floats-20170830-git/ieee-floats.asd" contains definition for system "ieee-floats-tests". Please only define "ieee-floats" and secondary systems with a name starting with "ieee-floats/" (e.g. "ieee-floats/test") in that file. WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/trivial-utf-8-20111001-darcs/trivial-utf-8.asd" contains definition for system "trivial-utf-8-tests". Please only define "trivial-utf-8" and secondary systems with a name starting with "trivial-utf-8/" (e.g. "trivial-utf-8/test") in that file. WARNING: System definition file #P"/thrift/src/lib/cl/externals/software/ieee-floats-20170830-git/ieee-floats.asd" contains definition for system "ieee-floats-tests". Please only define "ieee-floats" and secondary systems with a name starting with "ieee-floats/" (e.g. "ieee-floats/test") in that file. WARNING: Deprecated recursive use of (OPERATE 'LOAD-OP '("sb-grovel")) while visiting (LOAD-OP "net.didierverna.clon.setup/termio") - please use proper dependencies instead WARNING: Deprecated recursive use of (OPERATE 'LOAD-OP '("sb-grovel")) while visiting (LOAD-OP "net.didierverna.clon.setup/termio") - please use proper dependencies instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/net.didierverna.clon.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/net.didierverna.clon.asd", using NIL instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/net.didierverna.clon.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/net.didierverna.clon.asd", using NIL instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.core" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/core/net.didierverna.clon.core.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.core" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/core/net.didierverna.clon.core.asd", using NIL instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.core" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/core/net.didierverna.clon.core.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.core" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/core/net.didierverna.clon.core.asd", using NIL instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.termio" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/termio/net.didierverna.clon.termio.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.termio" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/termio/net.didierverna.clon.termio.asd", using NIL instead WARNING: PARSE-VERSION: "1.0b24" doesn't follow asdf version numbering convention WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.termio" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/termio/net.didierverna.clon.termio.asd", using NIL instead WARNING: Invalid :version specifier "1.0b24" for component "net.didierverna.clon.termio" from file #P"/thrift/src/lib/cl/externals/software/clon-1.0b24/termio/net.didierverna.clon.termio.asd", using NIL instead ; compiling file "/thrift/src/tutorial/cl/gen-cl/shared/shared-types.lisp" (written 13 NOV 2018 05:04:47 AM): ; compiling file "/thrift/src/tutorial/cl/gen-cl/shared/shared-types.lisp" (written 13 NOV 2018 05:04:47 AM): ; compiling (ORG.APACHE.THRIFT:DEF-PACKAGE :SHARED); compiling (ORG.APACHE.THRIFT:DEF-PACKAGE :SHARED) ; compiling (IN-PACKAGE :SHARED) ; compiling (IN-PACKAGE :SHARED) ; compiling (DEF-STRUCT "sharedstruct" ...) ; compiling (DEF-STRUCT "sharedstruct" ...) ; compiling (DEF-SERVICE "SharedService" ...); compiling (DEF-SERVICE "SharedService" ...) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-types-tmpGHU3ALSW.fasl written ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-types-tmpGHU3ALSV.fasl written ; compilation finished in 0:00:00.145 ; compilation finished in 0:00:00.145 ; compiling file "/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.lisp" (written 13 NOV 2018 05:04:47 AM): ; compiling (IN-PACKAGE :SHARED); compiling file "/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.lisp" (written 13 NOV 2018 05:04:47 AM): ; compiling (IN-PACKAGE :SHARED) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars-tmpAAURSO2.fasl written ; compilation finished in 0:00:00.002 ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars-tmpAAURSO1.fasl written ; compilation finished in 0:00:00.002 Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {10005285B3}>: Failed to find the TRUENAME of /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl: Unknown error 2049 Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10005285B3}> 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:SIMPLE-FILE-ERROR "~@<~?~@[: ~2I~_~A~]~:>" {10044D0DF3}> #<unused argument> :QUIT T) 1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SB-INT:SIMPLE-FILE-ERROR "~@<~?~@[: ~2I~_~A~]~:>" {10044D0DF3}>) 2: (INVOKE-DEBUGGER #<SB-INT:SIMPLE-FILE-ERROR "~@<~?~@[: ~2I~_~A~]~:>" {10044D0DF3}>) 3: (ERROR SB-INT:SIMPLE-FILE-ERROR :PATHNAME #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl" :FORMAT-CONTROL "~@<~?~@[: ~2I~_~A~]~:>" :FORMAT-ARGUMENTS ("Failed to find the ~*~A~2:* of ~A" (#P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl" :TRUENAME) "Unknown error 2049")) 4: ((LABELS SB-IMPL::RESOLVE-PROBLEMATIC-SYMLINK :IN SB-IMPL::%QUERY-FILE-SYSTEM) "/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl" 2049 T) 5: (SB-IMPL::%QUERY-FILE-SYSTEM #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl" :TRUENAME T) 6: (TRUENAME #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl") 7: (RENAME-FILE #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars-tmpAAURSO2.fasl" #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.fasl") 8: (UIOP/LISP-BUILD:COMPILE-FILE* #P"/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.lisp" :OUTPUT-FILE #P"/root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-vars.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-shared" "shared-vars">) 10: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-shared" "shared-vars">) ; compiling file "/thrift/src/tutorial/cl/gen-cl/tutorial/tutorial-types.lisp" (written 13 NOV 2018 05:04:47 AM): 11: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION)) ; compiling (ORG.APACHE.THRIFT:DEF-PACKAGE :TUTORIAL ...)12: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-shared" "shared-vars">) [fast-method] 13: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {10021A6F23}>) [fast-method] 14: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)) 15: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {10021A6F23}>) [fast-method] ; compiling (IN-PACKAGE :TUTORIAL)16: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-tutorial"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method] 17: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-tutorial">) 18: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 19: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-tutorial">) [fast-method] 20: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP :THRIFT-TUTORIAL) 21: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 22: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-TUTORIAL) [fast-method] ; compiling (DEF-ENUM "Operation" ...)23: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10021A33DB}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL) 24: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 25: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10021A03CB}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 26: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-TUTORIAL) [fast-method] 27: (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-TUTORIAL) 28: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-TUTORIAL) #<NULL-LEXENV>) 29: (EVAL-TLF (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-TUTORIAL) 7 NIL) 30: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-TUTORIAL) 7) 31: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-TUTORIAL) :CURRENT-INDEX 7) ; compiling (DEF-STRUCT "work" ...)32: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100182DD3B}> #<SB-C::SOURCE-INFO {100182DCF3}> SB-C::INPUT-ERROR-IN-LOAD) 33: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /thrift/src/tutorial/cl/make-tutorial-server.lisp" {100181EB93}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading") 34: ((FLET SB-FASL::THUNK :IN LOAD)) 35: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<CLOSURE (FLET SB-FASL::THUNK :IN LOAD) {7F79E080F69B}> #<SB-SYS:FD-STREAM for "file /thrift/src/tutorial/cl/make-tutorial-server.lisp" {100181EB93}>) 36: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /thrift/src/tutorial/cl/make-tutorial-server.lisp" {100181EB93}> NIL) 37: (LOAD #<SB-SYS:FD-STREAM for "file /thrift/src/tutorial/cl/make-tutorial-server.lisp" {100181EB93}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT) 38: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /thrift/src/tutorial/cl/make-tutorial-server.lisp" {100181EB93}>) 39: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT)) 40: ((FLET "WITHOUT-INTERRUPTS-BODY-2" :IN SB-IMPL::PROCESS-SCRIPT)) 41: (SB-IMPL::PROCESS-SCRIPT "make-tutorial-server.lisp") 42: (SB-IMPL::TOPLEVEL-INIT) 43: ((FLET SB-UNIX::BODY :IN SAVE-LISP-AND-DIE)) 44: ((FLET "WITHOUT-INTERRUPTS-BODY-27" :IN SAVE-LISP-AND-DIE)) 45: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE)) unhandled condition in --disable-debugger mode, quitting ; ; compilation unit aborted ; caught 1 fatal ERROR condition Makefile:634: recipe for target 'TutorialServer' failed make[2]: *** [TutorialServer] Error 1 make[2]: *** Waiting for unfinished jobs.... ; compiling (DEF-EXCEPTION "invalidoperation" ...) ; compiling (DEF-SERVICE "Calculator" ...) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/tutorial/tutorial-types-tmp5GEXGEG5.fasl written ; compilation finished in 0:00:00.307 ; compiling file "/thrift/src/tutorial/cl/gen-cl/tutorial/tutorial-vars.lisp" (written 13 NOV 2018 05:04:47 AM): ; compiling (IN-PACKAGE :TUTORIAL) ; compiling (DEF-CONSTANT "INT32CONSTANT" ...) ; compiling (DEF-CONSTANT "MAPCONSTANT" ...) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/gen-cl/tutorial/tutorial-vars-tmpAR3FSGEY.fasl written ; compilation finished in 0:00:00.002 ; compiling file "/thrift/src/tutorial/cl/shared-implementation.lisp" (written 13 NOV 2018 04:23:34 AM): ; compiling (IN-PACKAGE #:SHARED-IMPLEMENTATION) ; compiling (DEFVAR *STRUCTS* ...) ; compiling (DEFUN SHARED.SHARED-SERVICE-IMPLEMENTATION:GET-STRUCT ...) ; compiling (DEFUN ADD-LOG ...) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/shared-implementation-tmpJAIDFZTC.fasl written ; compilation finished in 0:00:00.005 ; compiling file "/thrift/src/tutorial/cl/tutorial-implementation.lisp" (written 13 NOV 2018 04:23:34 AM): ; compiling (IN-PACKAGE #:TUTORIAL-IMPLEMENTATION) ; compiling (DEFUN TUTORIAL.CALCULATOR-IMPLEMENTATION:PING ...) ; compiling (DEFUN TUTORIAL.CALCULATOR-IMPLEMENTATION:ADD ...) ; compiling (DEFUN TUTORIAL.CALCULATOR-IMPLEMENTATION:CALCULATE ...) ; compiling (DEFUN TUTORIAL.CALCULATOR-IMPLEMENTATION:ZIP ...) ; /root/.cache/common-lisp/sbcl-1.4.12-linux-x64/thrift/src/tutorial/cl/tutorial-implementation-tmp8V3J6PE9.fasl written ; compilation finished in 0:00:00.008 make[2]: Leaving directory '/thrift/src/tutorial/cl' Makefile:570: recipe for target 'check-recursive' failed make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory '/thrift/src/tutorial' Makefile:662: recipe for target 'check-recursive' failed make: *** [check-recursive] Error 1 travis_time:end:03b6ef86:start=1542083240931428939,finish=1542085491864210580,duration=2250932781641 [0K[31;1mThe command "build/docker/run.sh" exited with 2.[0m Done. Your build exited with 1. {noformat} Notice that although there's only one make job, both {{TutorialServer}} and {{TutorialClient}} seem to be executed one after another _without waiting for the first compile to finish_. I'm pretty sure this is the source of our problems, because shared files for the two binaries appear to be created at the same time. It's almost like the {{make-tutorial-client.lisp}} and {{make-tutorial-server.lisp}} are async, and return before finishing, which is bizarre. > CL tutorial build fails sporadically > ------------------------------------ > > Key: THRIFT-4676 > URL: https://issues.apache.org/jira/browse/THRIFT-4676 > Project: Thrift > Issue Type: Task > Components: Build Process > Reporter: Allen George > Assignee: Allen George > Priority: Minor > > Many of the CI failures are caused by the CL tutorial build failing. This > isn't because the CL code is wrong, it's simply because of a race condition > _somewhere_. -- This message was sent by Atlassian JIRA (v7.6.3#76005)