Skip to content
This repository was archived by the owner on Oct 7, 2026. It is now read-only.
This repository was archived by the owner on Oct 7, 2026. It is now read-only.

Segmentation fault, linux-x86_64 #86

Description

@CormacKinsella

Hi there,

I have an issue with the wave-cli linux-x86_64 binary, both this version and the last. My OS is Ubuntu 22.04.5 LTS.
I downloaded the binary and gave it executable permissions. This is the error I get with it:

./wave-1.5.0-linux-x86_64 --version

Segmentation fault (core dumped)

I get this with the binary & installation via homebrew. I've switched to the .jar and that seems to work fine.

Cheers - happy to provide any other info needed.

Activity

  1. munishchouhan commented on Nov 4, 2024

    @munishchouhan
    Member

    @CormacKinsella Thanks for reporting the issue
    We will check it out

  2. LouisLeNezet commented on Oct 6, 2026

    @LouisLeNezet

    I'm getting the same error with the latest version 1.8.4 and 1.7.0

  3. pditommaso commented on Oct 6, 2026

    @pditommaso
    Contributor

    Thanks for the reports. We have not been able to reproduce this so far: the wave-1.8.2-linux-x86_64 binary runs --version fine on Ubuntu 22.04 and Alpine 3.20 containers, with various stack and virtual-memory limits. We are also adding a CI smoke test that runs the Linux binary on real Ubuntu 22.04/24.04 runners.

    To narrow it down, could you please share the output of the following from a machine where it crashes?

    uname -a
    lscpu
    ulimit -a
    cat /etc/os-release
    ./wave --version; echo "exit=$?"
    sudo dmesg | tail -n 20      # the segfault line, if any
    

    Also useful:

    • Is this a VM, a container, WSL or an HPC/cluster node?
    • If gdb is available: gdb -batch -ex run -ex bt --args ./wave --version

    As a workaround in the meantime, the wave.jar from the release page works with Java 17+ (java -jar wave.jar ...).

  4. LouisLeNezet commented on Oct 6, 2026

    @LouisLeNezet

    I'm getting this error currently on my WSL2.

    $ uname -a
    Linux DESKTOP-207MCR6 6.18.40.1-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Fri Jul 31 22:12:15 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
    
    $ lscpu
    Architecture:                x86_64
      CPU op-mode(s):            32-bit, 64-bit
      Address sizes:             39 bits physical, 48 bits virtual
      Byte Order:                Little Endian
    CPU(s):                      6
      On-line CPU(s) list:       0-5
    Vendor ID:                   GenuineIntel
      Model name:                11th Gen Intel(R) Core(TM) i5-11600KF @ 3.90GHz
        CPU family:              6
        Model:                   167
        Thread(s) per core:      2
        Core(s) per socket:      3
        Socket(s):               1
        Stepping:                1
        BogoMIPS:                7823.99
        Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht sy
                                 scall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc cpui
                                 d tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline
                                 _timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced t
                                 pr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx
                                  smap avx512ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves vnmi avx512vb
                                 mi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm md_clear f
                                 lush_l1d arch_capabilities
    Virtualization features:     
      Virtualization:            VT-x
      Hypervisor vendor:         Microsoft
      Virtualization type:       full
    Caches (sum of all):         
      L1d:                       144 KiB (3 instances)
      L1i:                       96 KiB (3 instances)
      L2:                        1.5 MiB (3 instances)
      L3:                        12 MiB (1 instance)
    NUMA:                        
      NUMA node(s):              1
      NUMA node0 CPU(s):         0-5
    Vulnerabilities:             
      Gather data sampling:      Unknown: Dependent on hypervisor status
      Ghostwrite:                Not affected
      Indirect target selection: Mitigation; Aligned branch/return thunks
      Itlb multihit:             Not affected
      L1tf:                      Not affected
      Mds:                       Not affected
      Meltdown:                  Not affected
      Mmio stale data:           Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
      Old microcode:             Not affected
      Reg file data sampling:    Not affected
      Retbleed:                  Mitigation; Enhanced IBRS
      Spec rstack overflow:      Not affected
      Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
      Spectre v1:                Mitigation; usercopy/swapgs barriers and __user pointer sanitization
      Spectre v2:                Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI SW loop, KVM SW loop
      Srbds:                     Not affected
      Tsa:                       Not affected
      Tsx async abort:           Not affected
      Vmscape:                   Not affected
    llenezet@DESKTOP-207MCR6:~/repositories/modules$ ulimit -a
    real-time non-blocking time  (microseconds, -R) unlimited
    core file size              (blocks, -c) 0
    data seg size               (kbytes, -d) unlimited
    scheduling priority                 (-e) 0
    file size                   (blocks, -f) unlimited
    pending signals                     (-i) 47826
    max locked memory           (kbytes, -l) 65536
    max memory size             (kbytes, -m) unlimited
    open files                          (-n) 1048576
    pipe size                (512 bytes, -p) 8
    POSIX message queues         (bytes, -q) 819200
    real-time priority                  (-r) 0
    stack size                  (kbytes, -s) 8192
    cpu time                   (seconds, -t) unlimited
    max user processes                  (-u) 47826
    virtual memory              (kbytes, -v) unlimited
    file locks                          (-x) unlimited
    
    $ cat /etc/os-release 
    PRETTY_NAME="Ubuntu 22.04.3 LTS"
    NAME="Ubuntu"
    VERSION_ID="22.04"
    VERSION="22.04.3 LTS (Jammy Jellyfish)"
    VERSION_CODENAME=jammy
    ID=ubuntu
    ID_LIKE=debian
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    UBUNTU_CODENAME=jammy

    The error appeared with

    $ wget https://github.com/seqeralabs/wave-cli/releases/download/v1.8.2/wave-1.8.2-linux-x86_64
    $ chmod u+x wave-1.8.2-linux-x86_64
    $ ./wave-1.8.2-linux-x86_64 --version
    Segmentation fault (core dumped)
    
    $ sudo dmesg | tail -n 20
    [23905.466110] RBP: 00007d31ac381580 R08: 0000000000000000 R09: 000000000000000c
    [23905.466378] R10: 000000000000000c R11: 0000000000000000 R12: 0000000000000000
    [23905.466727] R13: 0000000000000000 R14: 000000000405f060 R15: 00007d31a4200000
    [23905.467052] FS:  00007d31ac381b38 GS:  0000000000000000
    [23905.469262] WSL (21646 - CaptureCrash): Capturing crash for pid: 376282, executable: !home!llenezet!repositories!modules!wave-1.8.2-linux-x86_64, signal: 11, port: 50005
    [23908.333496] wave-1.8.2-linu[21665] vsyscall attempted with vsyscall=none ip:ffffffffff600800 cs:33 sp:7c0c651ad548 ax:ffffffffff600800 si:0 di:7c0c651ad55c
    [23908.334107] wave-1.8.2-linu[21665]: segfault at ffffffffff600800 ip ffffffffff600800 sp 00007c0c651ad548 error 15 likely on CPU 5 (core 2, socket 0)
    [23908.334666] Code: Unable to access opcode bytes at 0xffffffffff6007d6.
    [23908.334934] wave-1.8.2-linux-x86_64: wave-1.8.2-linu: potentially unexpected fatal signal 11.
    [23908.335291] CPU: 5 UID: 1000 PID: 21665 Comm: wave-1.8.2-linu Not tainted 6.18.40.1-microsoft-standard-WSL2 #1 PREEMPT(none) 
    [23908.335727] RIP: 0033:0xffffffffff600800
    [23908.335868] Code: Unable to access opcode bytes at 0xffffffffff6007d6.
    [23908.336086] RSP: 002b:00007c0c651ad548 EFLAGS: 00010246
    [23908.336270] RAX: ffffffffff600800 RBX: 000000000405b118 RCX: 0000000000000000
    [23908.336543] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00007c0c651ad55c
    [23908.336835] RBP: 00007c0c651ad580 R08: 0000000000000000 R09: 000000000000000c
    [23908.337118] R10: 000000000000000c R11: 0000000000000000 R12: 0000000000000000
    [23908.337387] R13: 0000000000000000 R14: 000000000405f060 R15: 00007c0c5d000000
    [23908.337674] FS:  00007c0c651adb38 GS:  0000000000000000
    [23908.338297] WSL (21666 - CaptureCrash): Capturing crash for pid: 376301, executable: !home!llenezet!repositories!modules!wave-1.8.2-linux-x86_64, signal: 11, port: 50005

    I'm now using directly the .jar and it works fine.

  5. pditommaso commented on Oct 6, 2026

    @pditommaso
    Contributor

    @LouisLeNezet thanks a lot, the dmesg output pinpointed the problem:

    vsyscall attempted with vsyscall=none ip:ffffffffff600800
    

    The Linux binary is built as a static musl image with the G1 garbage collector. At startup, G1 looks up sched_getcpu with dlsym, which always fails in a static musl binary. It then falls back to calling the legacy vsyscall getcpu at 0xffffffffff600800. WSL2 kernels boot with vsyscall=none, so that page isn't mapped and the binary segfaults.

    #136 switches the Linux binary back to the Serial GC and caps its reserved address space, which also keeps #46 fixed.

    Could you try the build from that PR on your WSL2 machine?

    1. Open the PR workflow run (requires being logged in to GitHub)
    2. Download the nativeCompile-ubuntu-latest artifact and unzip it
    3. Run:
      chmod +x wave
      ./wave --version
      

    It should print 1.8.2_9dd361f.

  6. LouisLeNezet commented on Oct 7, 2026

    @LouisLeNezet

    Hi,

    Thanks for fixing the issue, this seems to work nicely now !

    wave --version
    1.8.2_9dd361f
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions