[MacPorts] #60555: beekeeper-studio 1.4.0: failure when building in buildbot environment

MacPorts noreply at macports.org
Mon May 25 07:33:12 UTC 2020


#60555: beekeeper-studio 1.4.0: failure when building in buildbot environment
-------------------------+------------------------------
 Reporter:  herbygillot  |      Owner:  (none)
     Type:  defect       |     Status:  new
 Priority:  Normal       |  Milestone:
Component:  ports        |    Version:  2.6.2
 Keywords:  maintainer   |       Port:  beekeeper-studio
-------------------------+------------------------------
 The following PR:

 https://github.com/macports/macports-ports/pull/7195

 ...introduces a new port, '''beekeeper-studio'''.

 This port built successfully for the most part in the Azure and Travis CI
 environments, and as a result was merged into the ports tree.

 However, upon running in the buildbot environment, the build process for
 this port crashed for all macos versions.

 - Build log for macos 10.14:
 https://build.macports.org/builders/ports-10.14_x86_64-builder/builds/60487/steps
 /install-port/logs/stdio
 - Build log for macos 10.15:
 https://build.macports.org/builders/ports-10.15_x86_64-builder/builds/31248/steps
 /install-port/logs/stdio

 The pertinent error is:

 {{{
 SIGILL: illegal instruction
 PC=0x1065880 m=6 sigcode=1

 goroutine 39 [running]:
 runtime.asyncPreempt()
         /usr/local/Cellar/go/1.14/libexec/src/runtime/preempt_amd64.s:8
 fp=0xc000408c00 sp=0xc000408bf8 pc=0x1065880
 }}}

 The crash is happening in a helper Go binary that helps to package the JS
 into an electron app.

 When we do a dump of the binary and view the instruction at the address
 referenced by the illegal instruction signal, we see that it is
 `VZEROUPPER`:
 {{{
 $ go tool objdump ./app-builder | grep '0x1065880'
   preempt_amd64.s:8     0x1065880               c5f877
 VZEROUPPER
 }}}


 This is reminiscent of an issue with an earlier version of Go (1.14) that
 had a bug on older amd64 chips when running the `VZEROUPPER` instruction:

 https://github.com/golang/go/issues/37459#issuecomment-591180408

 My guess is that the binary that the app-builder-bin node package is being
 distributed with has probably been built elsewhere using that older
 version of Go.

 One possible workaround for this port would be for us to build the helper
 binary ourselves using the most recent version of Go in ports and swap it
 into the build process.

-- 
Ticket URL: <https://trac.macports.org/ticket/60555>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list