bakito / kubexporter

📥 easily export your k8s resources
Apache License 2.0
30 stars 3 forks source link

Progress bar crash #460

Closed tomassatka closed 5 days ago

tomassatka commented 5 days ago

If using binary inside container, when using progress type bar the application crash on deadlock. Switching to simple solves the issue. But it would be nice that it works out of box since there is also a code that identify that kubexport runs as InCluster() so that could also set the progress to simple.

Including crash stack trace when deadlock

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [semacquire, 3 minutes]:
sync.runtime_Semacquire(0x40008350f8?)
        /usr/local/go/src/runtime/sema.go:71 +0x2c
sync.(*WaitGroup).Wait(0x40008350f8)
        /usr/local/go/src/sync/waitgroup.go:118 +0x98
github.com/vbauerster/mpb/v8.(*Progress).Wait(0x40008350e0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/progress.go:228 +0x2c
github.com/bakito/kubexporter/pkg/export/progress/mpb.(*mpbProgress).Run(0x4000a22cc0)
        /build/pkg/export/progress/mpb/mpb.go:35 +0x34
github.com/bakito/kubexporter/pkg/export.(*exporter).Export(0x40004f4070, {0x273c3c0, 0x37bae20})
        /build/pkg/export/export.go:98 +0x8d4
github.com/bakito/kubexporter/cmd.init.func2(0x37760c0, {0x37bae20, 0x0, 0x0})
        /build/cmd/root.go:42 +0x15c
github.com/spf13/cobra.(*Command).execute(0x37760c0, {0x400004c2c0, 0x0, 0x0})
        /go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:985 +0xbd8
github.com/spf13/cobra.(*Command).ExecuteC(0x37760c0)
        /go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x7d0
github.com/spf13/cobra.(*Command).Execute(0x37760c0)
        /go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1041 +0x30
github.com/bakito/kubexporter/cmd.Execute()
        /build/cmd/root.go:111 +0x24
main.main()
        /build/main.go:10 +0x1c

goroutine 55 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e5770, 0x4000976410)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 137 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000934fa0, 0x40009e4680)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 101 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000934280, 0x40009e55f0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 134 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000934640, 0x4000ae76c0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 65 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Progress).serve(0x40008350e0, 0x400081c460, 0x0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/progress.go:259 +0x1ec
created by github.com/vbauerster/mpb/v8.NewWithContext in goroutine 1
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/progress.go:112 +0x914

goroutine 66 [chan receive, 3 minutes]:
github.com/vbauerster/mpb/v8.heapManager.run(0x4000a80000)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/heap_manager.go:47 +0x94
created by github.com/vbauerster/mpb/v8.NewWithContext in goroutine 1
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/progress.go:113 +0x980

goroutine 52 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4280, 0x4000a83110)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 368 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000874960, 0x4000550410)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 181 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000935a90, 0x4002091a00)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 74 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af72c0, 0x4000a831e0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 58 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c66e0, 0x40009e4750)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 21 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914500, 0x4000ae6c30)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 61 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40008759f0, 0x40013aa270)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 131 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c74f0, 0x4000ae69c0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 29 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4e10, 0x4000ae6680)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 91 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4a00, 0x40013aa4e0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 24 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914ff0, 0x40004adba0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 64 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af71d0, 0x40013aab60)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 83 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af7b30, 0x40013ab450)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 104 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914af0, 0x40005512b0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 114 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914050, 0x40016cfc70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 86 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914280, 0x4000e3e1a0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 48 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c60a0, 0x40013ab2b0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 94 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4be0, 0x400123af70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 41 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40008745f0, 0x4000550680)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 110 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40008753b0, 0x4001595450)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 144 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40009151d0, 0x4002090dd0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 142 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914780, 0x4002090750)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 117 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000914910, 0x4002102820)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 156 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40004ea960, 0x4000e3f930)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 179 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000934eb0, 0x4002090c30)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 147 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000874230, 0x400123a680)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 126 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000875090, 0x4002103d40)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 386 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40004ea4b0, 0x4000e3ed00)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 164 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000935360, 0x4002090f70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 150 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af74a0, 0x40015944e0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 184 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4e60, 0x400123a410)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 239 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40008157c0, 0x4000977110)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 190 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af7ef0, 0x40013aa750)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 194 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c6aa0, 0x4000e3ec30)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 77 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000834370, 0x4002090340)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 197 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c7b30, 0x4000e3fc70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 200 [select, 3 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40004eac80, 0x40014ccf70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 153 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000af7c70, 0x4000e3e750)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 213 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40000b57c0, 0x40009e5c70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 225 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40004ebb80, 0x4002102f70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 232 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40008004b0, 0x40013ab380)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 256 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007ea370, 0x400123a1a0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 236 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000814aa0, 0x4000976680)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 259 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007eaf00, 0x400123b790)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 219 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007e4f50, 0x40015945b0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 207 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x400085aff0, 0x40016cf110)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 204 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40009147d0, 0x4000ae7ad0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 321 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000874690, 0x4002091ba0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 284 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40004eb270, 0x4000e3e9c0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 316 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000874a00, 0x4000ae6a90)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 287 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40009342d0, 0x40009e4410)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 201 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c6ff0, 0x4000ae6820)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 306 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000935540, 0x40009e5860)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 309 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000874820, 0x4002102dd0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 317 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007ea5f0, 0x400047da00)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 336 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000800780, 0x400123a9c0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 320 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007ebb80, 0x40015940d0)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 332 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40007c6cd0, 0x4000ae7860)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 329 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x40009355e0, 0x4000ae6d00)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 362 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000815d60, 0x4000a83520)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348

goroutine 365 [select, 2 minutes]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0x4000915450, 0x4000a83c70)
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:417 +0x10c
created by github.com/vbauerster/mpb/v8.newBar in goroutine 65
        /go/pkg/mod/github.com/vbauerster/mpb/v8@v8.8.3/bar.go:78 +0x348
2024-10-31T13:06:29Z debug layer=debugger continuing
2024-10-31T13:06:29Z debug layer=debugger detaching
bakito commented 5 days ago

@tomassatka good hint. I'll have to look into this on how to identify if running in a terminal.

Perhaps it might be suffucient to check if the process is running in an interactive terminal.

bakito commented 5 days ago

@tomassatka How does your config look like? especially how many worker threads do you use?

bakito commented 5 days ago

@tomassatka How does your config look like? especially how many worker threads do you use?

I was able to reproduce it in e2e tests.

tomassatka commented 5 days ago

My config looks following:

i have configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "kubexporter.name" . }}
data:
  config.yaml: |
    {{- toYaml .Values.kubexporter.config | nindent 4 }}

and then in values.yaml

 config:
    summary: true
    progress: simple
    archive: false
    asLists: false
    clearTarget: true
    worker: 5
    considerOwnerReferences: false
    included:
      kinds:
        - foo.bar.com.Program
        - foo.bar.com.Nexus
        - foo.bar.com.Gitlab
        - xrd.vault.upbound.io.ExternalGroup
        - users.nexus.foo.bar.io.User
        - roles.nexus.foo.bar.io.Role
        - privileges.nexus.foo.bar.io.PrivilegeRepositoryContentSelector
        - contentselectors.nexus.foo.bar.io.ContentSelector
        - kubernetes.crossplane.io.Object
        - groups.gitlab.crossplane.io.Variable
        - groups.gitlab.crossplane.io.SamlGroupLink
        - groups.gitlab.crossplane.io.Group
        - kubernetes.vault.upbound.io.AuthBackendConfig
        - kubernetes.vault.upbound.io.AuthBackendRole
        - jwt.vault.upbound.io.AuthBackendRole
        - jwt.vault.upbound.io.AuthBackend
        - auth.vault.upbound.io.Backend
        - identity.vault.upbound.io.GroupAlias
        - identity.vault.upbound.io.Group
        - vault.vault.upbound.io.Mount
        - vault.vault.upbound.io.Policy

but i had the same behavior with 1 worker as well...

bakito commented 5 days ago

@tomassatka would you try the latest main image ghcr.io/bakito/kubexporter:main to check if your issue is fixed?

tomassatka commented 5 days ago

hi @bakito

Yes it works. Here is the proof where i intentionally put bar as progress and add wrong binding that sa has no access to check the NP from previous issue:

  config:
    summary: true
    # progress: simple
    progress: bar
    archive: false
    asLists: false
    clearTarget: true
    worker: 5
    considerOwnerReferences: false
    included:
      kinds:
        - foo.bar.com.Program
        - foo.bar.com.Nexus
        *
        *

output with some skipped/masked logs:

tomas@Tomass-MacBook-Pro kubexporter % kc -n kubexporter logs -f kubexporter-manual-001-7jg92                    
Switching progress to "simple" in non terminal environment
Starting export ...
  kubexporter version "main"
  cluster "https://10.96.0.1:443"
  all namespaces 
  target "exports" 
  format "yaml" 
  worker 5
  summary 

Exporting ...
  - foo.bar.Gitlab
  - contentselectors.nexus.foo.bar.io.ContentSelector
  *
  *

 GROUP                                        VERSION   KIND                                NAMESPACES  TOTAL INSTANCES  EXPORTED INSTANCES  QUERY DURATION  EXPORT DURATION 
 foo.bar.com                        v1alpha1  Gitlab                              false                     0                   0  22.406084ms     0s              
 foo.bar.com                        v1alpha1  Nexus                               false                     0                   0  22.441583ms     0s              
 foo.bar.com                        v1alpha1  Program                             false                     0                   0  22.067333ms     0s              
 contentselectors.nexus.foo.bar.io  v1alpha1  ContentSelector                     false                     0                   0  22.404375ms     0s              
 kubernetes.crossplane.io                     v1alpha2  Object                              false                     0                   0  22.104916ms     0s              
 privileges.nexus.foo.bar.io        v1alpha1  PrivilegeRepositoryContentSelector  false                     0                   0  599.25µs        0s              
 roles.nexus.foo.bar.io             v1alpha1  Role                                false                     0                   0  575µs           0s              
 users.nexus.foo.bar.io             v1alpha1  User                                false                     0                   0  527.25µs        0s              
 CUMULATED TOTAL                                                                                                      0                   0  113.125791ms    0s              

        Kinds 8

        Exported Resources 0
        Namespaces 0
        Errors 8
        Duration 65.261292ms

looks good

when i add --verbose to my args: args: ["--config", "/etc/config.yaml", "--verbose"] i get those errors printed out:

users.nexus.foo.bar.io             v1alpha1  User                                false                     0                   0  589.583µs       0s               Error:users.users.nexus.foo.bar.io  
is forbidden: User                                                                                                                                                                                                                                            "system:serviceaccount:kubexporter:kubexporter"                                                                                        
cannot list resource "users" in API                                             

group "users.nexus.foo.bar.io"  at the cluster scope: RBAC:                                                     
clusterrole.rbac.authorization.k8s.io     "cal-view" not found                  

so all works as expected. Waiting for new release that contains it.

And a BIG thank you for swift fix. You are helpful as always

bakito commented 5 days ago

released with https://github.com/bakito/kubexporter/releases/tag/v0.6.1