Bug 292628 - sysutils/snmp_exporter: snmp_exporter_generator crashes
Summary: sysutils/snmp_exporter: snmp_exporter_generator crashes
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Lexi Winter
URL: https://reviews.freebsd.org/D55620
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-21 11:39 UTC by topical
Modified: 2026-03-02 22:24 UTC (History)
2 users (show)

See Also:
vvd: maintainer-feedback? (ivy)
ivy: merge-quarterly?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description topical 2026-01-21 11:39:03 UTC
Broken Package: snmp_exporter-0.29.0_10 (FreeBSD ports r2026Q1)
Working Package: snmp_exporter-0.29.0_7 (FreeBSD ports r2025Q4)

Test:

cd /usr/local/etc/snmp_exporter/
$ snmp_exporter_generator generate
time=2026-01-21T11:35:25.684Z level=INFO source=net_snmp.go:174 msg="Loading MIBs" from=$HOME/.snmp/mibs:/usr/local/share/snmp/mibs
SIGSEGV: segmentation violation
PC=0x772fcc m=3 sigcode=1 addr=0x380000008e
signal arrived during cgo execution

goroutine 1 gp=0x874002380 m=3 mp=0x874073008 [syscall]:
runtime.cgocall(0x7731f0, 0x8740df228)
	runtime/cgocall.go:167 +0x4b fp=0x8740df200 sp=0x8740df1c8 pc=0x547c6b
main._Cfunc_get_tc_fixed_size(0x20)
	_cgo_gotypes.go:268 +0x45 fp=0x8740df228 sp=0x8740df200 pc=0x758d45
main.buildMIBTree(0xcdab0972300, 0x874194ff0, {0x87401ab70?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:247 +0x44d fp=0x8740df320 sp=0x8740df228 pc=0x75a10d
main.buildMIBTree(0xcdab0972180, 0x874194e10, {0x87401ab28?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df418 sp=0x8740df320 pc=0x75a2b5
main.buildMIBTree(0xcdab09720c0, 0x874194d20, {0x87401aaf8?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df510 sp=0x8740df418 pc=0x75a2b5
main.buildMIBTree(0xcdab0972000, 0x874194c30, {0x874012c70?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df608 sp=0x8740df510 pc=0x75a2b5
main.buildMIBTree(0xcdab0946f40, 0x874194b40, {0x874012c20?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df700 sp=0x8740df608 pc=0x75a2b5
main.buildMIBTree(0xcdab0946ac0, 0x8741945a0, {0x874012880?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df7f8 sp=0x8740df700 pc=0x75a2b5
main.buildMIBTree(0xcdab0837600, 0x8740f71d0, {0x874012860?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df8f0 sp=0x8740df7f8 pc=0x75a2b5
main.buildMIBTree(0xcdab0837540, 0x8740f70e0, {0x874012840?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740df9e8 sp=0x8740df8f0 pc=0x75a2b5
main.buildMIBTree(0xcdab0837480, 0x8740f6ff0, {0x874012823?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740dfae0 sp=0x8740df9e8 pc=0x75a2b5
main.buildMIBTree(0xcdab08373c0, 0x8740f6f00, {0x874012810?, 0x2?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740dfbd8 sp=0x8740dfae0 pc=0x75a2b5
main.buildMIBTree(0xcdab0837300, 0x8740f6e10, {0x305548?, 0x1?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740dfcd0 sp=0x8740dfbd8 pc=0x75a2b5
main.buildMIBTree(0xcdab0837180, 0x8740f6d20, {0x0?, 0x0?})
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:267 +0x5f5 fp=0x8740dfdc8 sp=0x8740dfcd0 pc=0x75a2b5
main.getMIBTree()
	github.com/prometheus/snmp_exporter/generator/net_snmp.go:295 +0x4b fp=0x8740dfe08 sp=0x8740dfdc8 pc=0x75a68b
main.main()
	github.com/prometheus/snmp_exporter/generator/main.go:131 +0x165 fp=0x8740dff50 sp=0x8740dfe08 pc=0x753885
runtime.main()
	runtime/proc.go:283 +0x27d fp=0x8740dffe0 sp=0x8740dff50 pc=0x51959d
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x8740dffe8 sp=0x8740dffe0 pc=0x551ac1

goroutine 2 gp=0x874002e00 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:435 +0xce fp=0x87406cfa8 sp=0x87406cf88 pc=0x54aace
runtime.goparkunlock(...)
	runtime/proc.go:441
runtime.forcegchelper()
	runtime/proc.go:348 +0xa5 fp=0x87406cfe0 sp=0x87406cfa8 pc=0x5198c5
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x87406cfe8 sp=0x87406cfe0 pc=0x551ac1
created by runtime.init.7 in goroutine 1
	runtime/proc.go:336 +0x1a

goroutine 3 gp=0x874003340 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:435 +0xce fp=0x87406d780 sp=0x87406d760 pc=0x54aace
runtime.goparkunlock(...)
	runtime/proc.go:441
runtime.bgsweep(0x87407e000)
	runtime/mgcsweep.go:276 +0x94 fp=0x87406d7c8 sp=0x87406d780 pc=0x5049d4
runtime.gcenable.gowrap1()
	runtime/mgc.go:204 +0x25 fp=0x87406d7e0 sp=0x87406d7c8 pc=0x4f8f65
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x87406d7e8 sp=0x87406d7e0 pc=0x551ac1
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:204 +0x66

goroutine 4 gp=0x874003500 m=nil [GC scavenge wait]:
runtime.gopark(0x87407e000?, 0x2f89f0?, 0x1?, 0x0?, 0x874003500?)
	runtime/proc.go:435 +0xce fp=0x87406df78 sp=0x87406df58 pc=0x54aace
runtime.goparkunlock(...)
	runtime/proc.go:441
runtime.(*scavengerState).park(0x799c60)
	runtime/mgcscavenge.go:425 +0x49 fp=0x87406dfa8 sp=0x87406df78 pc=0x5024a9
runtime.bgscavenge(0x87407e000)
	runtime/mgcscavenge.go:653 +0x3c fp=0x87406dfc8 sp=0x87406dfa8 pc=0x5029fc
runtime.gcenable.gowrap2()
	runtime/mgc.go:205 +0x25 fp=0x87406dfe0 sp=0x87406dfc8 pc=0x4f8f05
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x87406dfe8 sp=0x87406dfe0 pc=0x551ac1
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:205 +0xa5

goroutine 5 gp=0x874003dc0 m=nil [finalizer wait]:
runtime.gopark(0x1b8?, 0x51b9c6?, 0x1?, 0x23?, 0x87406c688?)
	runtime/proc.go:435 +0xce fp=0x87406c630 sp=0x87406c610 pc=0x54aace
runtime.runfinq()
	runtime/mfinal.go:196 +0x107 fp=0x87406c7e0 sp=0x87406c630 pc=0x4f7f27
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x87406c7e8 sp=0x87406c7e0 pc=0x551ac1
created by runtime.createfing in goroutine 1
	runtime/mfinal.go:166 +0x3d

goroutine 6 gp=0x8740ec1c0 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:435 +0xce fp=0x87406e718 sp=0x87406e6f8 pc=0x54aace
runtime.chanrecv(0x8740a43f0, 0x0, 0x1)
	runtime/chan.go:664 +0x445 fp=0x87406e790 sp=0x87406e718 pc=0x4ea965
runtime.chanrecv1(0x0?, 0x0?)
	runtime/chan.go:506 +0x12 fp=0x87406e7b8 sp=0x87406e790 pc=0x4ea512
runtime.unique_runtime_registerUniqueMapCleanup.func2(...)
	runtime/mgc.go:1797
runtime.unique_runtime_registerUniqueMapCleanup.gowrap1()
	runtime/mgc.go:1800 +0x2f fp=0x87406e7e0 sp=0x87406e7b8 pc=0x4fc00f
runtime.goexit({})
	runtime/asm_amd64.s:1700 +0x1 fp=0x87406e7e8 sp=0x87406e7e0 pc=0x551ac1
created by unique.runtime_registerUniqueMapCleanup in goroutine 1
	runtime/mgc.go:1795 +0x79

rax    0x3800000086
rbx    0x8740df228
rcx    0x600
rdx    0x8740df1b8
rdi    0x20
rsi    0x874003180
rbp    0x871b0aed0
rsp    0x871b0aed0
r8     0x874073008
r9     0x0
r10    0x874012cf0
r11    0xffffffffffffffff
r12    0x8741881a0
r13    0x27
r14    0x874002380
r15    0x35
rip    0x772fcc
rflags 0x10202
cs     0x43
fs     0x13
gs     0x1b
Comment 1 Lexi Winter freebsd_committer freebsd_triage 2026-01-23 03:13:20 UTC
i can reproduce this on FreeBSD 15.0-RELEASE-p1 using snmp_exporter-0.29.0_11.  however, this didn't occur last time i tested this port, and it apparently wasn't caused by an upstream change since the upstream version is the same.
Comment 2 topical 2026-01-23 07:38:57 UTC
(In reply to Lexi Winter from comment #1)

May be it's because of net-snmp:

working snmp_exporter: requires net-snmp 5.9.4 (libnetsnmp.so.40)
broken snmp_exporter: requires net-snmp 5.9.5 (libnetsnmp.so.45)

Perhaps there is an incompatibility there?
Comment 3 Lexi Winter freebsd_committer freebsd_triage 2026-03-02 17:20:22 UTC
sorry for the delay on this.  i was hoping updating to current snmp_exporter and net-snmp would fix the problem, but it does not.

i've filed an upstream bug: https://github.com/prometheus/snmp_exporter/issues/1570
Comment 4 commit-hook freebsd_committer freebsd_triage 2026-03-02 18:50:29 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=50b9359327b89a6c258f38e336ef5aad4d80eebc

commit 50b9359327b89a6c258f38e336ef5aad4d80eebc
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2026-03-02 18:45:34 +0000
Commit:     Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2026-03-02 18:45:34 +0000

    sysutils/snmp_exporter: Fix snmp_exporter_generator crash

    Backport upstream PR #1550 to fix a crash when using net-snmp 5.9.5.0
    or later.

    PR:     292628
    MFH:    2026Q1
    Reviewed by:    arrowd, jrm
    Approved by:    arrowd (ports)
    Obtained from:  https://github.com/prometheus/snmp_exporter/pull/1550
    Sponsored by:   https://www.patreon.com/bsdivy
    Differential Revision:  https://reviews.freebsd.org/D55620

 sysutils/snmp_exporter/Makefile                      |  2 +-
 .../files/patch-generator_net__snmp.go (new)         | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)
Comment 5 commit-hook freebsd_committer freebsd_triage 2026-03-02 19:00:32 UTC
A commit in branch 2026Q1 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6a8dd23e2557b165d077a425de5d1ce3b69e06a9

commit 6a8dd23e2557b165d077a425de5d1ce3b69e06a9
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2026-03-02 18:45:34 +0000
Commit:     Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2026-03-02 18:57:39 +0000

    sysutils/snmp_exporter: Fix snmp_exporter_generator crash

    Backport upstream PR #1550 to fix a crash when using net-snmp 5.9.5.0
    or later.

    PR:     292628
    MFH:    2026Q1
    Reviewed by:    arrowd, jrm
    Approved by:    arrowd (ports)
    Obtained from:  https://github.com/prometheus/snmp_exporter/pull/1550
    Sponsored by:   https://www.patreon.com/bsdivy
    Differential Revision:  https://reviews.freebsd.org/D55620

    (cherry picked from commit 50b9359327b89a6c258f38e336ef5aad4d80eebc)

 sysutils/snmp_exporter/Makefile                      |  2 +-
 .../files/patch-generator_net__snmp.go (new)         | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)