guacsec / guac

GUAC aggregates software security metadata into a high fidelity graph database.
https://guac.sh
Apache License 2.0
1.29k stars 178 forks source link

[bug] make test fails on /pkg/ingestor/parser/common/scanner #2190

Open lumjjb opened 1 month ago

lumjjb commented 1 month ago

Describe the bug

The make test fails

To Reproduce

  1. make test

Expected behavior Tests passes on head

Screenshots

=== RUN   TestPurlsLicenseScan/valid_log4j
coverage: 58.3% of statements
panic: test timed out after 30s
        running tests:
                TestPurlsLicenseScan (7s)
                TestPurlsLicenseScan/valid_log4j (7s)

goroutine 77 [running]:
testing.(*M).startAlarm.func1()
        /usr/lib/google-golang/src/testing/testing.go:2387 +0x265
created by time.goFunc
        /usr/lib/google-golang/src/time/sleep.go:215 +0x45

goroutine 1 [chan receive]:
testing.(*T).Run(0xc0000dd040, {0x14b2a25, 0x14}, 0x15450f8)
        /usr/lib/google-golang/src/testing/testing.go:1751 +0x851
testing.runTests.func1(0xc0000dd040)
        /usr/lib/google-golang/src/testing/testing.go:2169 +0x86
testing.tRunner(0xc0000dd040, 0xc000923ae0)
        /usr/lib/google-golang/src/testing/testing.go:1690 +0x227
testing.runTests(0xc0005f8798, {0x1d4e620, 0x2, 0x2}, {0x7f344dc51108?, 0x40?, 0x1d65720?})
        /usr/lib/google-golang/src/testing/testing.go:2167 +0x8bf
testing.(*M).Run(0xc000688be0)
        /usr/lib/google-golang/src/testing/testing.go:2035 +0xf38
main.main()
        _testmain.go:57 +0x165

goroutine 85 [chan receive]:
testing.(*T).Run(0xc000dbe000, {0x14aa31c, 0xb}, 0xc000e5c380)
        /usr/lib/google-golang/src/testing/testing.go:1751 +0x851
github.com/guacsec/guac/pkg/ingestor/parser/common/scanner.TestPurlsLicenseScan(0xc000dbe000)
        /usr/local/google/home/lumb/git/guac/pkg/ingestor/parser/common/scanner/scanner_test.go:466 +0x25b2
testing.tRunner(0xc000dbe000, 0x15450f8)
        /usr/lib/google-golang/src/testing/testing.go:1690 +0x227
created by testing.(*T).Run in goroutine 1
        /usr/lib/google-golang/src/testing/testing.go:1743 +0x826

goroutine 86 [select]:
net/http.(*http2ClientConn).roundTrip(0xc0001ff200, 0xc00053e3c0, 0x0)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8520 +0xc0f
net/http.(*http2ClientConn).RoundTrip(...)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8417
net/http.(*http2Transport).RoundTripOpt(0xc000688dc0, 0xc00053e3c0, {0xf0?})
        /usr/lib/google-golang/src/net/http/h2_bundle.go:7739 +0x64e
net/http.(*http2Transport).RoundTrip(0xc000688dc0, 0xc00053e3c0)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:7697 +0x36
net/http.(*Transport).roundTrip(0x1d56920, 0xc00053e140)
        /usr/lib/google-golang/src/net/http/transport.go:642 +0x1515
net/http.(*Transport).RoundTrip(0x1d56920, 0xc00053e140)
        /usr/lib/google-golang/src/net/http/roundtrip.go:30 +0x34
github.com/guacsec/guac/pkg/version.uat.RoundTrip({{0x166b5c0?, 0x1d56920?}}, 0xc00053e140)
        /usr/local/google/home/lumb/git/guac/pkg/version/version.go:41 +0x1bf
net/http.send(0xc00053e140, {0x166b980, 0xc000319580}, {0x0?, 0x0?, 0x0?})
        /usr/lib/google-golang/src/net/http/client.go:259 +0x9a7
net/http.(*Client).send(0xc00096a1b0, 0xc00053e140, {0x0?, 0x5c8525?, 0x0?})
        /usr/lib/google-golang/src/net/http/client.go:180 +0x14f
net/http.(*Client).do(0xc00096a1b0, 0xc00053e140)
        /usr/lib/google-golang/src/net/http/client.go:725 +0x11b6
net/http.(*Client).Do(...)
        /usr/lib/google-golang/src/net/http/client.go:590
net/http.(*Client).Post(0xc00096a1b0, {0x14c9a78, 0x29}, {0x14aee84, 0x10}, {0x166b2c0, 0xc00096a2d0})
        /usr/lib/google-golang/src/net/http/client.go:855 +0x1cc
github.com/guacsec/guac/pkg/certifier/clearlydefined.getDefinitions.func1()
        /usr/local/google/home/lumb/git/guac/pkg/certifier/clearlydefined/clearlydefined.go:95 +0x105
github.com/guacsec/guac/pkg/certifier/clearlydefined.retryWithBackoff.func1()
        /usr/local/google/home/lumb/git/guac/pkg/certifier/clearlydefined/clearlydefined.go:303 +0x146
github.com/guacsec/guac/pkg/certifier/clearlydefined.getDefinitions({0x1674fc0, 0xc00096a120}, 0xc00096a1b0, {0xc000c643c0, 0x1, 0x3c?}, {0xc000c64420, 0x1, 0x1})
        /usr/local/google/home/lumb/git/guac/pkg/certifier/clearlydefined/clearlydefined.go:99 +0x494
github.com/guacsec/guac/pkg/certifier/clearlydefined.generateDefinitions({0x1674fc0, 0xc00096a120}, 0xc00096a1b0, {0xc000c64420, 0x1, 0x1}, {0xc000c643c0, 0x1, 0x1}, 0x0, ...)
        /usr/local/google/home/lumb/git/guac/pkg/certifier/clearlydefined/clearlydefined.go:163 +0xcc
github.com/guacsec/guac/pkg/certifier/clearlydefined.EvaluateClearlyDefinedDefinition({0x1674fc0, 0xc00096a120}, 0xc00096a1b0, {0xc000c64330, 0x1, 0x12d15f3?}, 0x0, 0x0)
        /usr/local/google/home/lumb/git/guac/pkg/certifier/clearlydefined/clearlydefined.go:147 +0x5d7
github.com/guacsec/guac/pkg/ingestor/parser/common/scanner.runQueryOnBatchedPurls({0x1674fc0, 0xc00096a120}, {0x1674f50, 0xc0007ae400}, {0xc000c64330, 0x1, 0x1})
        /usr/local/google/home/lumb/git/guac/pkg/ingestor/parser/common/scanner/scanner.go:82 +0x1be
github.com/guacsec/guac/pkg/ingestor/parser/common/scanner.PurlsLicenseScan({0x1674fc0, 0xc00096a120}, {0xc000c64330, 0x1, 0x1})
        /usr/local/google/home/lumb/git/guac/pkg/ingestor/parser/common/scanner/scanner.go:67 +0x134
github.com/guacsec/guac/pkg/ingestor/parser/common/scanner.TestPurlsLicenseScan.func1(0xc000dbe1a0)
        /usr/local/google/home/lumb/git/guac/pkg/ingestor/parser/common/scanner/scanner_test.go:467 +0x78
testing.tRunner(0xc000dbe1a0, 0xc000e5c380)
        /usr/lib/google-golang/src/testing/testing.go:1690 +0x227
created by testing.(*T).Run in goroutine 85
        /usr/lib/google-golang/src/testing/testing.go:1743 +0x826

goroutine 76 [select]:
net/http.(*http2clientStream).writeRequest(0xc0001ff380, 0xc00053e3c0, 0x0)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8673 +0x14ec
net/http.(*http2clientStream).doRequest(0xc0001ff380, 0xc00053e3c0, 0x0)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8551 +0xd2
created by net/http.(*http2ClientConn).roundTrip in goroutine 86
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8456 +0x9a5

goroutine 14 [IO wait]:
internal/poll.runtime_pollWait(0x7f344d3a8d50, 0x72)
        /usr/lib/google-golang/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc0000ba0a0, 0x72, 0x0)
        /usr/lib/google-golang/src/internal/poll/fd_poll_runtime.go:84 +0xb1
internal/poll.(*pollDesc).waitRead(...)
        /usr/lib/google-golang/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0000ba080, {0xc000276a00, 0x1500, 0x1500})
        /usr/lib/google-golang/src/internal/poll/fd_unix.go:165 +0x466
net.(*netFD).Read(0xc0000ba080, {0xc000276a00, 0x1500, 0x1500})
        /usr/lib/google-golang/src/net/fd_posix.go:55 +0x4b
net.(*conn).Read(0xc0004f6008, {0xc000276a00, 0x1500, 0x1500})
        /usr/lib/google-golang/src/net/net.go:189 +0xad
crypto/tls.(*atLeastReader).Read(0xc00012cd68, {0xc000276a00, 0x1500, 0x1500})
        /usr/lib/google-golang/src/crypto/tls/conn.go:809 +0x89
bytes.(*Buffer).ReadFrom(0xc0004fa2b8, {0x166bce0, 0xc00012cd68})
        /usr/lib/google-golang/src/bytes/buffer.go:211 +0x113
crypto/tls.(*Conn).readFromUntil(0xc0004fa008, {0x166bfc0, 0xc0004f6008}, 0x5)
        /usr/lib/google-golang/src/crypto/tls/conn.go:831 +0x1da
crypto/tls.(*Conn).readRecordOrCCS(0xc0004fa008, 0x0)
        /usr/lib/google-golang/src/crypto/tls/conn.go:629 +0x365
crypto/tls.(*Conn).readRecord(...)
        /usr/lib/google-golang/src/crypto/tls/conn.go:591
crypto/tls.(*Conn).Read(0xc0004fa008, {0xc000da3000, 0x1000, 0x0?})
        /usr/lib/google-golang/src/crypto/tls/conn.go:1385 +0x2dd
bufio.(*Reader).Read(0xc000da0180, {0xc000d923c0, 0x9, 0x9})
        /usr/lib/google-golang/src/bufio/bufio.go:241 +0x4bf
io.ReadAtLeast({0x166ae60, 0xc000da0180}, {0xc000d923c0, 0x9, 0x9}, 0x9)
        /usr/lib/google-golang/src/io/io.go:335 +0xd0
io.ReadFull(...)
        /usr/lib/google-golang/src/io/io.go:354
net/http.http2readFrameHeader({0xc000d923c0, 0x9, 0x9}, {0x166ae60, 0xc000da0180})
        /usr/lib/google-golang/src/net/http/h2_bundle.go:1642 +0x9a
net/http.(*http2Framer).ReadFrame(0xc000d92380)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:1909 +0xf5
net/http.(*http2clientConnReadLoop).run(0xc00061dfa8)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:9496 +0x191
net/http.(*http2ClientConn).readLoop(0xc0001fe900)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:9392 +0x175
created by net/http.(*http2Transport).newClientConn in goroutine 13
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8006 +0x1e2b

goroutine 75 [IO wait]:
internal/poll.runtime_pollWait(0x7f344d3a8c48, 0x72)
        /usr/lib/google-golang/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc000e5c920, 0x72, 0x0)
        /usr/lib/google-golang/src/internal/poll/fd_poll_runtime.go:84 +0xb1
internal/poll.(*pollDesc).waitRead(...)
        /usr/lib/google-golang/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000e5c900, {0xc0006ef000, 0x1000, 0x1000})
        /usr/lib/google-golang/src/internal/poll/fd_unix.go:165 +0x466
net.(*netFD).Read(0xc000e5c900, {0xc0006ef000, 0x1000, 0x1000})
        /usr/lib/google-golang/src/net/fd_posix.go:55 +0x4b
net.(*conn).Read(0xc0004c2058, {0xc0006ef000, 0x1000, 0x1000})
        /usr/lib/google-golang/src/net/net.go:189 +0xad
crypto/tls.(*atLeastReader).Read(0xc000732c90, {0xc0006ef000, 0x1000, 0x1000})
        /usr/lib/google-golang/src/crypto/tls/conn.go:809 +0x89
bytes.(*Buffer).ReadFrom(0xc0002ab7b8, {0x166bce0, 0xc000732c90})
        /usr/lib/google-golang/src/bytes/buffer.go:211 +0x113
crypto/tls.(*Conn).readFromUntil(0xc0002ab508, {0x166bfc0, 0xc0004c2058}, 0x5)
        /usr/lib/google-golang/src/crypto/tls/conn.go:831 +0x1da
crypto/tls.(*Conn).readRecordOrCCS(0xc0002ab508, 0x0)
        /usr/lib/google-golang/src/crypto/tls/conn.go:629 +0x365
crypto/tls.(*Conn).readRecord(...)
        /usr/lib/google-golang/src/crypto/tls/conn.go:591
crypto/tls.(*Conn).Read(0xc0002ab508, {0xc00088b000, 0x1000, 0x633fb9?})
        /usr/lib/google-golang/src/crypto/tls/conn.go:1385 +0x2dd
bufio.(*Reader).Read(0xc00052b080, {0xc000d92660, 0x9, 0x9})
        /usr/lib/google-golang/src/bufio/bufio.go:241 +0x4bf
io.ReadAtLeast({0x166ae60, 0xc00052b080}, {0xc000d92660, 0x9, 0x9}, 0x9)
        /usr/lib/google-golang/src/io/io.go:335 +0xd0
io.ReadFull(...)
        /usr/lib/google-golang/src/io/io.go:354
net/http.http2readFrameHeader({0xc000d92660, 0x9, 0x9}, {0x166ae60, 0xc00052b080})
        /usr/lib/google-golang/src/net/http/h2_bundle.go:1642 +0x9a
net/http.(*http2Framer).ReadFrame(0xc000d92620)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:1909 +0xf5
net/http.(*http2clientConnReadLoop).run(0xc000621fa8)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:9496 +0x191
net/http.(*http2ClientConn).readLoop(0xc0001ff200)
        /usr/lib/google-golang/src/net/http/h2_bundle.go:9392 +0x175
created by net/http.(*http2Transport).newClientConn in goroutine 74
        /usr/lib/google-golang/src/net/http/h2_bundle.go:8006 +0x1e2b
FAIL    github.com/guacsec/guac/pkg/ingestor/parser/common/scanner      31.033s

GUAC version head @ 4db142dae403bfdf15826a0b777bc504b7e5508a

Additional context Add any other context about the problem here.

pxp928 commented 1 month ago

hmm all clearlydefined unit tests are failing...I think the service is not responding properly. I have seen error codes (524) returned.

https://github.com/guacsec/guac/actions/runs/11279685839/job/31372038550?pr=2184#step:8:122