Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gomnd regression in 1.35.2 #1653

Closed
3 tasks done
jkowalski opened this issue Jan 17, 2021 · 13 comments · Fixed by #1667
Closed
3 tasks done

gomnd regression in 1.35.2 #1653

jkowalski opened this issue Jan 17, 2021 · 13 comments · Fixed by #1667
Labels
bug Something isn't working dependencies Relates to an upstream dependency

Comments

@jkowalski
Copy link

Thank you for creating the issue!

  • Yes, I'm using a binary release within 2 latest major releases. Only such installations are supported.
  • Yes, I've searched similar issues on GitHub and didn't find any.
  • Yes, I've included all information below (version, config, etc).

Please include the following information:

I'm trying to upgrade my project from 1.33 to 1.35 and getting weird random behavior of gomnd where magic constants are treated as not magic triggering nolint violation.

See the pull request to upgrade: kopia/kopia#786

It is failing GH checks: https://github.com/kopia/kopia/pull/786/checks?check_run_id=1715239415
Notice the linter passes on macOS, Windows and using provided GH Action but fails on Linux:

I can reproduce this with jkowalski/kopia@f0f8441:

$ GOOS=linux GOARCH=amd64 make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 
repo/encryption/deprecated_ctr_encryptor.go:83:110: directive `//nolint:gomnd` is unused for linter gomnd (nolintlint)
	Register("AES-192-CTR", "DEPRECATED: AES-192 in CTR mode", true, newCTREncryptorFactory(24, aes.NewCipher)) //nolint:gomnd
	                                                                                                            ^
make: *** [lint] Error 1

$ GOOS=darwin GOARCH=amd64 make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 

$ GOOS=windows GOARCH=amd64 make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 

If you look at the history of this PR you'll find couple more spurious failures with gomnd that I have also fixed, such as kopia/kopia@1c56fb7

@jkowalski jkowalski added the bug Something isn't working label Jan 17, 2021
@boring-cyborg
Copy link

boring-cyborg bot commented Jan 17, 2021

Hey, thank you for opening your first Issue ! 🙂 If you would like to contribute we have a guide for contributors.

jkowalski added a commit to kopia/kopia that referenced this issue Jan 17, 2021
* lint: added test that enforces Makefile and GH action linter versions are in sync
* workaround for linter gomnd problem - golangci/golangci-lint#1653
@ldez
Copy link
Member

ldez commented Jan 17, 2021

Hello,

I think more to an issue with nolintlint than gomnd.

Have you tried with v1.34.1?
Have you tried https://github.com/tommy-muehle/go-mnd by itself?

@ldez ldez added the feedback required Requires additional feedback label Jan 17, 2021
@jkowalski
Copy link
Author

Interesting - I'm getting this failure on my macOS, when running go-mnd manually:

$ mnd ./...                                                                                                                                                                        1 ↵
mnd: internal error: nil Pkg importing "sync/atomic" from "github.com/kopia/kopia/internal/stats"
$ go version
go version go1.15.6 darwin/amd64

The code in question is doing conditional compilation based on goarch amd64:

https://github.com/kopia/kopia/tree/master/internal/stats

@jkowalski
Copy link
Author

Also, did some tests on different versions all using the same commit:

kopia/kopia@1f3b8d4

Using 1.35.2:

$  GOARCH=amd64 GOOS=linux make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 

$ GOARCH=amd64 GOOS=darwin make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 

$ GOARCH=amd64 GOOS=windows make lint
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.35.2/golangci-lint --deadline 300s run 
repo/splitter/splitter.go:45:35: directive `//nolint:gomnd` is unused for linter gomnd (nolintlint)
	"FIXED-8M": Fixed(megabytes(8)), //nolint:gomnd

Using 1.34.1 (only changed tools/tools.mk) linux/windows have the same failures (all seem to be bugs in thelper which does not recognize ctx) but darwin has one spurious failure:

$ GOARCH=amd64 GOOS=linux make lint 
# same as $ GOARCH=amd64 GOOS=windows make lint                                                                                                                                              
/Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.34.1/golangci-lint --deadline 300s run 
internal/repotesting/repotesting.go:94:1: parameter *testing.T should be the first (thelper)
func (e *Environment) Close(ctx context.Context, t *testing.T) {
^
repo/repository_test.go:200:1: parameter *testing.T should be the first (thelper)
func writeObject(ctx context.Context, t *testing.T, rep repo.Repository, data []byte, testCaseID string) object.ID {
^
repo/repository_test.go:216:1: parameter *testing.T should be the first (thelper)
func verify(ctx context.Context, t *testing.T, rep repo.Repository, objectID object.ID, expectedData []byte, testCaseID string) {
^
make: *** [lint] Error 1

$ GOARCH=amd64 GOOS=darwin make lint                                                                                                                                               /Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.34.1/golangci-lint --deadline 300s run 
internal/repotesting/repotesting.go:94:1: parameter *testing.T should be the first (thelper)
func (e *Environment) Close(ctx context.Context, t *testing.T) {
^
repo/blob/sftp/sftp_storage_test.go:43:1: parameter *testing.T should be the first (thelper)
func deleteBlobs(ctx context.Context, t *testing.T, st blob.Storage) {
^
repo/blob/sftp/sftp_storage_test.go:53:1: parameter *testing.T should be the first (thelper)
func createSFTPStorage(ctx context.Context, t *testing.T, embed bool) (blob.Storage, error) {
^
repo/splitter/splitter.go:45:35: directive `//nolint:gomnd` is unused for linter gomnd (nolintlint)
	"FIXED-8M": Fixed(megabytes(8)), //nolint:gomnd

On 1.33.0 all three {linux,darwin,windows}/amd64 return the same errors (seems like a bug since 0o555 is clearly a magic constant)

$ /Users/jarek/Projects/Kopia/tools/.tools/golangci-lint-1.33.0/golangci-lint --deadline 300s run 
WARN [runner/nolint] Found unknown linters in //nolint directives: forbidigo 
snapshot/snapshotfs/all_sources.go:33:28: directive `// nolint:gomnd` is unused for linter gomnd (nolintlint)
	return 0o555 | os.ModeDir // nolint:gomnd
	                          ^
snapshot/snapshotfs/source_directories.go:29:28: directive `// nolint:gomnd` is unused for linter gomnd (nolintlint)
	return 0o555 | os.ModeDir // nolint:gomnd
	                          ^
snapshot/snapshotfs/source_snapshots.go:31:28: directive `// nolint:gomnd` is unused for linter gomnd (nolintlint)
	return 0o555 | os.ModeDir // nolint:gomnd

@ldez
Copy link
Member

ldez commented Jan 20, 2021

The problem with the mnd command line is related to tommy-muehle/go-mnd#15

To be able to use the command line:

cd $GOPATH/src/github.com/tommy-muehle/go-mnd
git pull origin master
go install ./cmd/mnd

@ldez
Copy link
Member

ldez commented Jan 20, 2021

I created a PR to fix a concurrent access tommy-muehle/go-mnd#19


Windows
$ GOARCH=amd64 GOOS=windows mnd ./...
./repo/content/content_index_recovery.go:64:9: Magic number: 255, in <condition> detected
./repo/content/content_index_recovery.go:84:23: Magic number: 5, in <condition> detected
./repo/content/blob_crypto.go:25:57: Magic number: 2, in <operation> detected
./repo/content/builder.go:175:54: Magic number: 16, in <operation> detected
./repo/content/builder.go:190:51: Magic number: 8, in <operation> detected
./repo/content/content_manager_lock_free.go:130:78: Magic number: 2, in <operation> detected
./repo/content/content_read_manager.go:77:19: Magic number: 100, in <operation> detected
./repo/splitter/splitter.go:43:30: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:44:30: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:45:30: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:48:62: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:49:62: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:50:62: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:53:66: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:54:66: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:55:66: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:58:17: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:58:22: Magic number: 20, in <argument> detected
./repo/splitter/splitter.go:62:51: Magic number: 4, in <argument> detected
./repo/splitter/splitter_buzhash32.go:106:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_buzhash32.go:107:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:30: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:41: Magic number: 2, in <operation> detected
./repo/splitter/splitter.go:66:15: Magic number: 20, in <return> detected
./repo/object/object_reader.go:127:30: Magic number: 2, in <operation> detected
./fs/cachefs/cache.go:176:24: Magic number: 1000, in <assign> detected
./fs/cachefs/cache.go:177:24: Magic number: 100000, in <assign> detected
./repo/format_block.go:279:49: Magic number: 8, in <argument> detected
./repo/format_block.go:281:43: Magic number: 8, in <argument> detected
./repo/initialize.go:98:62: Magic number: 20, in <argument> detected
./repo/initialize.go:98:66: Magic number: 20, in <argument> detected
./repo/open.go:161:20: Magic number: 20, in <operation> detected
./repo/open.go:161:26: Magic number: 20, in <operation> detected
./snapshot/policy/retention_policy.go:170:31: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:178:22: Magic number: 10, in <argument> detected
./snapshot/policy/retention_policy.go:179:22: Magic number: 48, in <argument> detected
./snapshot/policy/retention_policy.go:180:22: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:181:22: Magic number: 4, in <argument> detected
./snapshot/policy/retention_policy.go:182:22: Magic number: 24, in <argument> detected
./snapshot/policy/retention_policy.go:183:22: Magic number: 3, in <argument> detected
./internal/mount/mount_net_use.go:80:15: Magic number: 2, in <condition> detected
./snapshot/snapshotfs/upload.go:712:16: Magic number: 100, in <argument> detected
./snapshot/snapshotfs/all_sources.go:33:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_directories.go:29:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_snapshots.go:31:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/repofs.go:220:16: Magic number: 0o555, in <assign> detected
./snapshot/snapshotfs/repofs.go:266:16: Magic number: 0o644, in <assign> detected
./snapshot/snapshotfs/source_snapshots.go:83:17: Magic number: 0o555, in <assign> detected
./repo/maintenance/content_rewrite.go:138:95: Magic number: 100, in <argument> detected
./repo/maintenance/maintenance_params.go:46:19: Magic number: 24, in <assign> detected
./internal/server/htmlui_fallback.go:161:24: Magic number: 2147484068, in <argument> detected
./internal/server/htmlui_fallback.go:186:75: Magic number: 420, in <argument> detected
./internal/server/htmlui_fallback.go:186:100: Magic number: 1574253768, in <argument> detected
./internal/server/htmlui_fallback.go:300:68: Magic number: 0o755, in <argument> detected
./internal/server/htmlui_fallback.go:186:52: Magic number: 358, in <assign> detected
./repo/blob/b2/b2_storage.go:115:47: Magic number: 1e6, in <argument> detected
./cli/command_benchmark_splitters.go:96:29: Magic number: 1e6, in <argument> detected
./cli/command_benchmark_splitters.go:112:29: Magic number: 1e6, in <argument> detected
./cli/command_snapshot_verify.go:174:15: Magic number: 100, in <argument> detected
./cli/command_repository_sync.go:214:37: Magic number: 8, in <operation> detected
./cli/command_snapshot_create.go:118:63: Magic number: 20, in <operation> detected
./cli/command_snapshot_estimate.go:123:45: Magic number: 8, in <operation> detected
./cli/command_snapshot_estimate.go:123:49: Magic number: 1000000, in <operation> detected
./cli/command_repository_connect.go:51:56: Magic number: 20, in <assign> detected
./cli/command_repository_connect.go:52:64: Magic number: 20, in <assign> detected
./cli/command_snapshot_estimate.go:58:20: Magic number: 1e15, in <assign> detected
./cli/command_snapshot_estimate.go:59:20: Magic number: 1e12, in <assign> detected
./cli/command_snapshot_estimate.go:60:20: Magic number: 1e9, in <assign> detected
./cli/command_snapshot_estimate.go:61:20: Magic number: 1e6, in <assign> detected
./cli/command_snapshot_estimate.go:62:20: Magic number: 1e3, in <assign> detected
./examples/upload_download/upload_download_objects.go:20:22: Magic number: 256, in <argument> detected
./examples/upload_download/upload_download_objects.go:20:26: Magic number: 1024, in <argument> detected
./examples/upload_download/setup_repository.go:51:24: Magic number: 100000000, in <assign> detected
./internal/blobtesting/asserts.go:36:32: Magic number: 2, in <argument> detected
./internal/blobtesting/concurrent.go:61:18: Magic number: 100, in <argument> detected
./internal/blobtesting/concurrent.go:129:18: Magic number: 100, in <argument> detected
./internal/mockfs/mockfs.go:290:10: Magic number: 0o777, in <assign> detected
./tests/perf_benchmark/process_results.go:111:20: Magic number: 2, in <condition> detected
./tests/tools/kopiarunner/kopia_snapshotter.go:247:19: Magic number: 2, in <condition> detected
./tests/testenv/cli_test_env.go:468:42: Magic number: 100, in <argument> detected
./tests/testenv/cli_test_env.go:514:26: Magic number: 2, in <argument> detected
./tests/testenv/cli_test_env.go:272:63: Magic number: 2, in <operation> detected
./tests/testenv/cli_test_env.go:274:64: Magic number: 2, in <operation> detected
./tests/testenv/faketimeserver.go:55:20: Magic number: 100, in <assign> detected
./tests/testingaction/main.go:92:20: Magic number: 2, in <condition> detected
Linux
GOARCH=amd64 GOOS=linux mnd ./...
./repo/content/content_index_recovery.go:64:9: Magic number: 255, in <condition> detected
./repo/content/content_index_recovery.go:84:23: Magic number: 5, in <condition> detected
./repo/content/blob_crypto.go:25:57: Magic number: 2, in <operation> detected
./repo/content/builder.go:175:54: Magic number: 16, in <operation> detected
./repo/content/builder.go:190:51: Magic number: 8, in <operation> detected
./repo/content/content_manager_lock_free.go:130:78: Magic number: 2, in <operation> detected
./repo/content/content_read_manager.go:77:19: Magic number: 100, in <operation> detected
./repo/splitter/splitter.go:43:30: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:44:30: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:48:62: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:49:62: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:50:62: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:53:66: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:54:66: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:55:66: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:58:17: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:58:22: Magic number: 20, in <argument> detected
./repo/splitter/splitter.go:62:51: Magic number: 4, in <argument> detected
./repo/splitter/splitter_buzhash32.go:106:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_buzhash32.go:107:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:30: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:41: Magic number: 2, in <operation> detected
./repo/splitter/splitter.go:66:15: Magic number: 20, in <return> detected
./repo/object/object_reader.go:127:30: Magic number: 2, in <operation> detected
./fs/cachefs/cache.go:176:24: Magic number: 1000, in <assign> detected
./fs/cachefs/cache.go:177:24: Magic number: 100000, in <assign> detected
./repo/format_block.go:279:49: Magic number: 8, in <argument> detected
./repo/format_block.go:281:43: Magic number: 8, in <argument> detected
./repo/initialize.go:98:62: Magic number: 20, in <argument> detected
./repo/initialize.go:98:66: Magic number: 20, in <argument> detected
./repo/open.go:161:20: Magic number: 20, in <operation> detected
./repo/open.go:161:26: Magic number: 20, in <operation> detected
./snapshot/policy/retention_policy.go:170:31: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:178:22: Magic number: 10, in <argument> detected
./snapshot/policy/retention_policy.go:179:22: Magic number: 48, in <argument> detected
./snapshot/policy/retention_policy.go:180:22: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:181:22: Magic number: 4, in <argument> detected
./snapshot/policy/retention_policy.go:182:22: Magic number: 24, in <argument> detected
./snapshot/policy/retention_policy.go:183:22: Magic number: 3, in <argument> detected
./snapshot/snapshotfs/upload.go:712:16: Magic number: 100, in <argument> detected
./snapshot/snapshotfs/all_sources.go:33:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_directories.go:29:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_snapshots.go:31:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/repofs.go:220:16: Magic number: 0o555, in <assign> detected
./snapshot/snapshotfs/repofs.go:266:16: Magic number: 0o644, in <assign> detected
./snapshot/snapshotfs/source_snapshots.go:83:17: Magic number: 0o555, in <assign> detected
./repo/maintenance/content_rewrite.go:138:95: Magic number: 100, in <argument> detected
./repo/maintenance/maintenance_params.go:46:19: Magic number: 24, in <assign> detected
./internal/server/htmlui_fallback.go:161:24: Magic number: 2147484068, in <argument> detected
./internal/server/htmlui_fallback.go:186:75: Magic number: 420, in <argument> detected
./internal/server/htmlui_fallback.go:186:100: Magic number: 1574253768, in <argument> detected
./internal/server/htmlui_fallback.go:300:68: Magic number: 0o755, in <argument> detected
./internal/server/htmlui_fallback.go:186:52: Magic number: 358, in <assign> detected
./repo/blob/b2/b2_storage.go:115:47: Magic number: 1e6, in <argument> detected
./cli/command_benchmark_splitters.go:96:29: Magic number: 1e6, in <argument> detected
./cli/command_benchmark_splitters.go:112:29: Magic number: 1e6, in <argument> detected
./cli/command_snapshot_verify.go:174:15: Magic number: 100, in <argument> detected
./cli/command_repository_sync.go:214:37: Magic number: 8, in <operation> detected
./cli/command_snapshot_create.go:118:63: Magic number: 20, in <operation> detected
./cli/command_snapshot_estimate.go:123:45: Magic number: 8, in <operation> detected
./cli/command_snapshot_estimate.go:123:49: Magic number: 1000000, in <operation> detected
./cli/command_repository_connect.go:51:56: Magic number: 20, in <assign> detected
./cli/command_repository_connect.go:52:64: Magic number: 20, in <assign> detected
./cli/command_snapshot_estimate.go:58:20: Magic number: 1e15, in <assign> detected
./cli/command_snapshot_estimate.go:59:20: Magic number: 1e12, in <assign> detected
./cli/command_snapshot_estimate.go:60:20: Magic number: 1e9, in <assign> detected
./cli/command_snapshot_estimate.go:61:20: Magic number: 1e6, in <assign> detected
./cli/command_snapshot_estimate.go:62:20: Magic number: 1e3, in <assign> detected
./examples/upload_download/setup_repository.go:51:24: Magic number: 100000000, in <assign> detected
./internal/blobtesting/asserts.go:36:32: Magic number: 2, in <argument> detected
./internal/blobtesting/concurrent.go:61:18: Magic number: 100, in <argument> detected
./internal/blobtesting/concurrent.go:129:18: Magic number: 100, in <argument> detected
./internal/mockfs/mockfs.go:290:10: Magic number: 0o777, in <assign> detected
./tests/perf_benchmark/process_results.go:111:20: Magic number: 2, in <condition> detected
./tests/tools/kopiarunner/kopia_snapshotter.go:247:19: Magic number: 2, in <condition> detected
./tests/testenv/cli_test_env.go:468:42: Magic number: 100, in <argument> detected
./tests/testenv/cli_test_env.go:514:26: Magic number: 2, in <argument> detected
./tests/testenv/cli_test_env.go:272:63: Magic number: 2, in <operation> detected
./tests/testenv/cli_test_env.go:274:64: Magic number: 2, in <operation> detected
./tests/testenv/faketimeserver.go:55:20: Magic number: 100, in <assign> detected
./tests/testingaction/main.go:92:20: Magic number: 2, in <condition> detected
./repo/splitter/splitter.go:45:30: Magic number: 8, in <argument> detected
Darwin
$ GOARCH=amd64 GOOS=darwin mnd ./...
./repo/content/content_index_recovery.go:64:9: Magic number: 255, in <condition> detected
./repo/content/content_index_recovery.go:84:23: Magic number: 5, in <condition> detected
./repo/content/blob_crypto.go:25:57: Magic number: 2, in <operation> detected
./repo/content/builder.go:175:54: Magic number: 16, in <operation> detected
./repo/content/builder.go:190:51: Magic number: 8, in <operation> detected
./repo/content/content_manager_lock_free.go:130:78: Magic number: 2, in <operation> detected
./repo/content/content_read_manager.go:77:19: Magic number: 100, in <operation> detected
./repo/splitter/splitter.go:43:30: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:44:30: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:45:30: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:48:62: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:49:62: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:50:62: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:53:66: Magic number: 2, in <argument> detected
./repo/splitter/splitter.go:54:66: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:55:66: Magic number: 8, in <argument> detected
./repo/splitter/splitter.go:58:17: Magic number: 4, in <argument> detected
./repo/splitter/splitter.go:58:22: Magic number: 20, in <argument> detected
./repo/splitter/splitter.go:62:51: Magic number: 4, in <argument> detected
./repo/splitter/splitter_buzhash32.go:106:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_buzhash32.go:107:23: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:30: Magic number: 2, in <operation> detected
./repo/splitter/splitter_rabinkarp64.go:104:41: Magic number: 2, in <operation> detected
./repo/splitter/splitter.go:66:15: Magic number: 20, in <return> detected
./repo/object/object_reader.go:127:30: Magic number: 2, in <operation> detected
./fs/cachefs/cache.go:176:24: Magic number: 1000, in <assign> detected
./fs/cachefs/cache.go:177:24: Magic number: 100000, in <assign> detected
./repo/format_block.go:279:49: Magic number: 8, in <argument> detected
./repo/format_block.go:281:43: Magic number: 8, in <argument> detected
./repo/initialize.go:98:62: Magic number: 20, in <argument> detected
./repo/initialize.go:98:66: Magic number: 20, in <argument> detected
./repo/open.go:161:20: Magic number: 20, in <operation> detected
./repo/open.go:161:26: Magic number: 20, in <operation> detected
./snapshot/policy/retention_policy.go:170:31: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:178:22: Magic number: 10, in <argument> detected
./snapshot/policy/retention_policy.go:179:22: Magic number: 48, in <argument> detected
./snapshot/policy/retention_policy.go:180:22: Magic number: 7, in <argument> detected
./snapshot/policy/retention_policy.go:181:22: Magic number: 4, in <argument> detected
./snapshot/policy/retention_policy.go:182:22: Magic number: 24, in <argument> detected
./snapshot/policy/retention_policy.go:183:22: Magic number: 3, in <argument> detected
./snapshot/snapshotfs/upload.go:712:16: Magic number: 100, in <argument> detected
./snapshot/snapshotfs/all_sources.go:33:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_directories.go:29:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/source_snapshots.go:31:9: Magic number: 0o555, in <return> detected
./snapshot/snapshotfs/repofs.go:220:16: Magic number: 0o555, in <assign> detected
./snapshot/snapshotfs/repofs.go:266:16: Magic number: 0o644, in <assign> detected
./snapshot/snapshotfs/source_snapshots.go:83:17: Magic number: 0o555, in <assign> detected
./repo/maintenance/content_rewrite.go:138:95: Magic number: 100, in <argument> detected
./repo/maintenance/maintenance_params.go:46:19: Magic number: 24, in <assign> detected
./internal/server/htmlui_fallback.go:161:24: Magic number: 2147484068, in <argument> detected
./internal/server/htmlui_fallback.go:186:75: Magic number: 420, in <argument> detected
./internal/server/htmlui_fallback.go:186:100: Magic number: 1574253768, in <argument> detected
./internal/server/htmlui_fallback.go:300:68: Magic number: 0o755, in <argument> detected
./internal/server/htmlui_fallback.go:186:52: Magic number: 358, in <assign> detected
./cli/command_benchmark_splitters.go:96:29: Magic number: 1e6, in <argument> detected
./cli/command_benchmark_splitters.go:112:29: Magic number: 1e6, in <argument> detected
./cli/command_snapshot_verify.go:174:15: Magic number: 100, in <argument> detected
./cli/command_repository_sync.go:214:37: Magic number: 8, in <operation> detected
./cli/command_snapshot_create.go:118:63: Magic number: 20, in <operation> detected
./cli/command_snapshot_estimate.go:123:45: Magic number: 8, in <operation> detected
./cli/command_snapshot_estimate.go:123:49: Magic number: 1000000, in <operation> detected
./cli/command_repository_connect.go:51:56: Magic number: 20, in <assign> detected
./cli/command_repository_connect.go:52:64: Magic number: 20, in <assign> detected
./cli/command_snapshot_estimate.go:58:20: Magic number: 1e15, in <assign> detected
./cli/command_snapshot_estimate.go:59:20: Magic number: 1e12, in <assign> detected
./cli/command_snapshot_estimate.go:60:20: Magic number: 1e9, in <assign> detected
./cli/command_snapshot_estimate.go:61:20: Magic number: 1e6, in <assign> detected
./cli/command_snapshot_estimate.go:62:20: Magic number: 1e3, in <assign> detected
./examples/upload_download/setup_repository.go:51:24: Magic number: 100000000, in <assign> detected
./internal/blobtesting/asserts.go:36:32: Magic number: 2, in <argument> detected
./internal/blobtesting/concurrent.go:61:18: Magic number: 100, in <argument> detected
./internal/blobtesting/concurrent.go:129:18: Magic number: 100, in <argument> detected
./internal/mockfs/mockfs.go:290:10: Magic number: 0o777, in <assign> detected
./tests/perf_benchmark/process_results.go:111:20: Magic number: 2, in <condition> detected
./tests/tools/kopiarunner/kopia_snapshotter.go:247:19: Magic number: 2, in <condition> detected
./tests/testenv/cli_test_env.go:468:42: Magic number: 100, in <argument> detected
./tests/testenv/cli_test_env.go:514:26: Magic number: 2, in <argument> detected
./tests/testenv/cli_test_env.go:272:63: Magic number: 2, in <operation> detected
./tests/testenv/cli_test_env.go:274:64: Magic number: 2, in <operation> detected
./tests/testenv/faketimeserver.go:55:20: Magic number: 100, in <assign> detected
./tests/testingaction/main.go:92:20: Magic number: 2, in <condition> detected

As you can see the line repo/splitter/splitter.go:45:35 is not in the report (on Linux) but I don't know why.

@ldez
Copy link
Member

ldez commented Jan 20, 2021

After multiple tries, in fact, it seems random: 2 calls don't provide the same results.

$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
10
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
12
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
12
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
10
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
12

So it seems to be a bug in go-mnd.

It's related to the update of go-mnd (#1558) in the v1.34.0 https://github.com/golangci/golangci-lint/releases/tag/v1.34.0

tommy-muehle/go-mnd@e6f9a99...16041ac

@ldez ldez added dependencies Relates to an upstream dependency and removed feedback required Requires additional feedback labels Jan 20, 2021
@ldez
Copy link
Member

ldez commented Jan 20, 2021

I created an issue tommy-muehle/go-mnd#20

@ldez
Copy link
Member

ldez commented Jan 22, 2021

I created a fix tommy-muehle/go-mnd#21

@dtracers
Copy link

dtracers commented Feb 9, 2021

Hi!
I am having the same issue as the above but am using the newest version of the golangci (v1.3.6)

But this is via a github action.
image

image

Is this not actually solved in 1.3.6?

@ldez
Copy link
Member

ldez commented Feb 9, 2021

This issue was fixed in v1.36.0

If you have an issue I recommend testing the https://github.com/tommy-muehle/go-mnd command line, if you have a problem with the CLI, you can open an issue on the go-mnd repository https://github.com/tommy-muehle/go-mnd

@dtracers
Copy link

image

This works correctly on the command line of go-mnd. ^^^
I know it was "fixed" in version v1.36.0 but my github action is replicating the issue in the fixed version of v1.36.0 on the github actions. (as shown in my previous comment I am using v1.36.0)

Did the newest version maybe not get pushed correctly?

@ldez
Copy link
Member

ldez commented Feb 11, 2021

Could you open a new issue? thank you.

In the new issue, you will have to add your configuration and a reproducible example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dependencies Relates to an upstream dependency
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants