Forgejo 15.0.0 is unable to start on DS-215j (SIGSEGV in futexwakeup)
bugupstream
### Is this a new Bug?
- [x] I checked that the bug hasn't been reported before
### Package Name
Forgejo
### Package Version
15.0.0-3
### Device Model
DS-215j
### Device Architecture
ARMv7
### Firmware Version
DSM 7.1.1-42962 Update 9
### What happened?
I have Forgejo 14.0.4 working on DS-215j (installed using SynoCommunity Forgejo package v,14.0.4-2).
After upgrading the package to 15.0.0-3, Forgejo is unable to start; the package log mentions SIGSEGV error.
Attempt to manually start the package fails as well (both from the UI and from the SSH session using synopkg).
Installing the 15.0.0-3 package w/o upgrading from 14.0.4 (albeit with the same configs) - Forgejo fails as well.
Downgrading the package back to 14.0.4-2 -- allows that older version of Forgejo to start again.
Expected: after install or upgrade to 15.0.0-3, Forgejo is able to start and is functional.
Also, attempting to run ./gitea --help within the ssh session (not a typo - forgejo binary is called gitea in SynoCommunity package) leads to the same SIGSEGV
Note: This may or may not be related to this issue https://github.com/SynoCommunity/spksrc/issues/7020 which points to a go runtime issue.
### Reproduction steps
1. Install SynoCommunity Forgejo package 14.0.4-2 on DS-215j (specifically, this one: https://packages.synocommunity.com/forgejo/2/forgejo.v2.f42661%5Balpine-alpine4k-armada370-armada375-armada38x-armadaxp-monaco%5D.spk )
2. Go through admin screen of Forgejo
3. Upgrade to Forgejo package to 15.0.0-3 (specifically, this one: https://packages.synocommunity.com/forgejo/3/forgejo.v3.f42661%5Balpine-alpine4k-armada370-armada375-armada38x-armadaxp-monaco%5D.spk )
4. Check whether the package is running
**Expected**: package is running
**Observed**: it does not (and it fails to run when attempted to be started manually)
### Install Log
```log
2026/04/29 18:37:59 start forgejo 14.0.4-2 Begin start-stop-status start
2026/04/29 18:38:01 start forgejo 14.0.4-2 End start-stop-status start ret=[0]
2026/05/06 02:46:57 upgrade forgejo 14.0.4-2 Begin start-stop-status stop
2026/05/06 02:46:59 upgrade forgejo 14.0.4-2 End start-stop-status stop ret=[0]
2026/05/06 02:47:02 upgrade forgejo 14.0.4-2 Begin preupgrade
2026/05/06 02:47:02 Begin initialize_variables
2026/05/06 02:47:02 Shared folder configured with SHARE_NAME [forgejo-share] and SHARE_PATH [/volume1/forgejo-share]
2026/05/06 02:47:02 End initialize_variables
2026/05/06 02:47:02 ===> Step preupgrade. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=/volume1/forgejo-share
2026/05/06 02:47:02 upgrade forgejo 14.0.4-2 End preupgrade ret=[0]
2026/05/06 02:47:02 upgrade forgejo 14.0.4-2 Begin preuninst
2026/05/06 02:47:02 Begin initialize_variables
2026/05/06 02:47:02 Shared folder configured with SHARE_NAME [forgejo-share] and SHARE_PATH [/volume1/forgejo-share]
2026/05/06 02:47:02 End initialize_variables
2026/05/06 02:47:02 ===> Step preuninst. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=/volume1/forgejo-share
2026/05/06 02:47:02 upgrade forgejo 14.0.4-2 End preuninst ret=[0]
2026/05/06 02:47:03 upgrade forgejo 14.0.4-2 Begin /bin/rm -rf /volume1/@appstore/forgejo
2026/05/06 02:47:03 upgrade forgejo 14.0.4-2 End /bin/rm -rf /volume1/@appstore/forgejo ret=[0]
2026/05/06 02:47:03 upgrade forgejo 14.0.4-2 Begin /bin/rm -rf /volume1/@apptemp/forgejo
2026/05/06 02:47:03 upgrade forgejo 14.0.4-2 End /bin/rm -rf /volume1/@apptemp/forgejo ret=[0]
2026/05/06 02:47:04 upgrade forgejo 14.0.4-2 Begin postuninst
2026/05/06 02:47:04 Begin initialize_variables
2026/05/06 02:47:04 Shared folder configured with SHARE_NAME [forgejo-share] and SHARE_PATH [/volume1/forgejo-share]
2026/05/06 02:47:04 End initialize_variables
2026/05/06 02:47:04 ===> Step postuninst. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=/volume1/forgejo-share
2026/05/06 02:47:04 upgrade forgejo 14.0.4-2 End postuninst ret=[0]
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 Begin preinst
2026/05/06 02:47:04 Begin initialize_variables
2026/05/06 02:47:04 End initialize_variables
2026/05/06 02:47:04 ===> Step preinst. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 End preinst ret=[0]
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 Begin /bin/mkdir -p /volume1/@appstore/forgejo -m 755
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 End /bin/mkdir -p /volume1/@appstore/forgejo -m 755 ret=[0]
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 Begin /bin/rm -rf /volume1/@appstore/forgejo
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 End /bin/rm -rf /volume1/@appstore/forgejo ret=[0]
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 Begin /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/package /volume1/@appstore/forgejo
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 End /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/package /volume1/@appstore/forgejo ret=[0]
2026/05/06 02:47:04 upgrade forgejo 15.0.0-3 Begin /bin/rm -rf /var/packages/forgejo
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/rm -rf /var/packages/forgejo ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/mkdir -p /var/packages/forgejo -m 755
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/mkdir -p /var/packages/forgejo -m 755 ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/touch /var/packages/forgejo/installing
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/touch /var/packages/forgejo/installing ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/INFO /var/packages/forgejo/INFO
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/INFO /var/packages/forgejo/INFO ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/rm -rf /var/packages/forgejo/scripts
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/rm -rf /var/packages/forgejo/scripts ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/scripts /var/packages/forgejo/scripts
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/scripts /var/packages/forgejo/scripts ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/rm -rf /var/packages/forgejo/WIZARD_UIFILES
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/rm -rf /var/packages/forgejo/WIZARD_UIFILES ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/WIZARD_UIFILES /var/packages/forgejo/WIZARD_UIFILES
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/WIZARD_UIFILES /var/packages/forgejo/WIZARD_UIFILES ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/rm -rf /var/packages/forgejo/conf
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/rm -rf /var/packages/forgejo/conf ret=[0]
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 Begin /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/conf /var/packages/forgejo/conf
2026/05/06 02:47:05 upgrade forgejo 15.0.0-3 End /bin/mv -f /volume1/@tmp/synopkg/install.dPBTXd/conf /var/packages/forgejo/conf ret=[0]
2026/05/06 02:47:09 upgrade forgejo 15.0.0-3 Begin postinst
2026/05/06 02:47:09 Begin initialize_variables
2026/05/06 02:47:09 Shared folder configured with SHARE_NAME [forgejo-share] and SHARE_PATH [/volume1/forgejo-share]
2026/05/06 02:47:09 End initialize_variables
2026/05/06 02:47:09 ===> Step postinst. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=/volume1/forgejo-share
2026/05/06 02:47:09 Begin save_wizard_variables
2026/05/06 02:47:09 End save_wizard_variables
2026/05/06 02:47:09 Begin syno_sync_var_folder
2026/05/06 02:47:09 Install files from var folder
2026/05/06 02:47:09 /bin/rsync -avh --ignore-existing --remove-source-files /volume1/@appstore/forgejo/var/ /volume1/@appdata/forgejo
2026/05/06 02:47:09 sending incremental file list
2026/05/06 02:47:09 ./
2026/05/06 02:47:10 sent 88 bytes received 19 bytes 214.00 bytes/sec
2026/05/06 02:47:10 total size is 188 speedup is 1.76
2026/05/06 02:47:10 /bin/rsync -avh --remove-source-files /volume1/@appstore/forgejo/var/ /volume1/@appdata/forgejo
2026/05/06 02:47:10 sending incremental file list
2026/05/06 02:47:10 ./
2026/05/06 02:47:10 conf.ini.new
2026/05/06 02:47:10 sent 331 bytes received 46 bytes 754.00 bytes/sec
2026/05/06 02:47:10 total size is 188 speedup is 0.50
2026/05/06 02:47:10 End syno_sync_var_folder
2026/05/06 02:47:10 Begin service_postinst
2026/05/06 02:47:10 End service_postinst
2026/05/06 02:47:10 upgrade forgejo 15.0.0-3 End postinst ret=[0]
2026/05/06 02:47:10 upgrade forgejo 15.0.0-3 Begin postupgrade
2026/05/06 02:47:10 Begin initialize_variables
2026/05/06 02:47:10 Shared folder configured with SHARE_NAME [forgejo-share] and SHARE_PATH [/volume1/forgejo-share]
2026/05/06 02:47:10 End initialize_variables
2026/05/06 02:47:10 ===> Step postupgrade. STATUS=UPGRADE USER=forgejo GROUP= SHARE_PATH=/volume1/forgejo-share
2026/05/06 02:47:10 Begin service_restore
2026/05/06 02:47:10 End service_restore
2026/05/06 02:47:10 Begin syno_sync_var_folder
2026/05/06 02:47:10 End syno_sync_var_folder
2026/05/06 02:47:10 upgrade forgejo 15.0.0-3 End postupgrade ret=[0]
2026/05/06 02:47:11 upgrade forgejo 15.0.0-3 Begin start-stop-status start
2026/05/06 02:47:31 upgrade forgejo 15.0.0-3 End start-stop-status start ret=[1]
2026/05/06 02:47:34 (system) trigger forgejo 15.0.0-3 Begin start-stop-status stop
2026/05/06 02:47:34 (system) trigger forgejo 15.0.0-3 End start-stop-status stop ret=[0]
```
### Service Log
```log
Wed May 6 02:47:11 MSK 2026
Starting forgejo command env PATH=/var/packages/git/target/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin HOME=/volume1/@apphome/forgejo /volume1/@appstore/forgejo/bin/gitea web --port 8620 --pid /volume1/@appdata/forgejo/forgejo.pid
futexwakeup addr=0x644be78 returned -1
SIGSEGV: segmentation violation
PC=0x75fc0 m=4 sigcode=1 addr=0x1006
goroutine 0 gp=0x8805048 m=4 mp=0x886f808 [idle]:
runtime.futexwakeup(0x644be78, 0x1)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/os_linux.go:98 +0x70 fp=0x2c985d94 sp=0x2c985d68 pc=0x75fc0
runtime.notewakeup(0x644be78)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/lock_futex.go:32 +0x68 fp=0x2c985dac sp=0x2c985d94 pc=0x3f364
runtime.startlockedm(0x8804148)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:3290 +0x60 fp=0x2c985dbc sp=0x2c985dac pc=0x82c58
runtime.schedule()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:4226 +0x68 fp=0x2c985ddc sp=0x2c985dbc pc=0x856f8
runtime.park_m(0x8804dc8)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:4304 +0x264 fp=0x2c985e08 sp=0x2c985ddc pc=0x85c64
runtime.mcall(0x2abe6184)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/asm_arm.s:263 +0x48 fp=0x2c985e10 sp=0x2c985e08 pc=0xc184c
goroutine 1 gp=0x8804148 m=nil [runnable, locked to thread]:
runtime.gopark(0x4004850, 0x8890038, 0x13, 0x7, 0x2)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:462 +0x100 fp=0x886a740 sp=0x886a72c pc=0xbb424
runtime.chanrecv(0x8890000, 0x0, 0x1)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/chan.go:667 +0x578 fp=0x886a77c sp=0x886a740 pc=0x38878
runtime.chanrecv1(0x8890000, 0x0)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/chan.go:509 +0x20 fp=0x886a790 sp=0x886a77c pc=0x382d0
runtime.gcenable()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgc.go:216 +0xd0 fp=0x886a7a4 sp=0x886a790 pc=0x4df28
runtime.main()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:213 +0x18c fp=0x886a7ec sp=0x886a7a4 pc=0x7c7cc
runtime.goexit({})
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/asm_arm.s:873 +0x4 fp=0x886a7ec sp=0x886a7ec pc=0xc30b4
goroutine 2 gp=0x88048c8 m=nil [runnable]:
runtime.forcegchelper()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:366 fp=0x886afec sp=0x886afec pc=0x7ccc0
runtime.goexit({})
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/asm_arm.s:873 +0x4 fp=0x886afec sp=0x886afec pc=0xc30b4
created by runtime.init.6 in goroutine 1
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:363 +0x1c
goroutine 3 gp=0x8804c88 m=nil [runnable]:
runtime.gcenable.gowrap1()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgc.go:214 fp=0x886b7ec sp=0x886b7ec pc=0x4dfa0
runtime.goexit({})
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/asm_arm.s:873 +0x4 fp=0x886b7ec sp=0x886b7ec pc=0xc30b4
created by runtime.gcenable in goroutine 1
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgc.go:214 +0x74
goroutine 4 gp=0x8804dc8 m=nil [GC scavenge wait]:
runtime.gopark(0x4004a04, 0x644a088, 0x9, 0xa, 0x2)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:462 +0x100 fp=0x886bfb4 sp=0x886bfa0 pc=0xbb424
runtime.goparkunlock(...)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/proc.go:468
runtime.(*scavengerState).park(0x644a088)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgcscavenge.go:425 +0x68 fp=0x886bfc8 sp=0x886bfb4 pc=0x5efc0
runtime.bgscavenge(0x8890000)
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgcscavenge.go:653 +0x3c fp=0x886bfe4 sp=0x886bfc8 pc=0x5f6d4
runtime.gcenable.gowrap2()
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgc.go:215 +0x1c fp=0x886bfec sp=0x886bfe4 pc=0x4df90
runtime.goexit({})
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/asm_arm.s:873 +0x4 fp=0x886bfec sp=0x886bfec pc=0xc30b4
created by runtime.gcenable in goroutine 1
/github/workspace/distrib/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-amd64/src/runtime/mgc.go:215 +0xbc
trap 0xe
error 0x817
oldmask 0x0
r0 0x1006
r1 0x1006
r2 0x0
r3 0x1
r4 0x1
r5 0x0
r6 0x1
r7 0x4
r8 0x645f7b6
r9 0x3fffffff
r10 0x8805048
fp 0x48
ip 0xa
sp 0x2c985d68
lr 0x40070
pc 0x75fc0
cpsr 0x600d0010
fault 0x1006
forgejo is not running
```
### Other Logs
```log
```
关闭于 2026-05-08 5 条评论