katana icon indicating copy to clipboard operation
katana copied to clipboard

data race crash

Open ehsandeep opened this issue 3 years ago • 0 comments

katana version:

main/dev

Current Behavior:

==================
Found 1 data race(s)
exit status 66
data race log
WARNING: DATA RACE
Write at 0x00c000330de8 by goroutine 27:
  github.com/projectdiscovery/ratelimit.(*Limiter).run()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/ratelimit.go:22 +0x90
  github.com/projectdiscovery/ratelimit.New.func1()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/ratelimit.go:51 +0x38

Previous read at 0x00c000330de8 by main goroutine:
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:59 +0x38c
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x164
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:130 +0x680
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:476 +0x88
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:125 +0x674
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:197 +0x238
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*session).recover.func1()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:113 +0xb8
  runtime.deferreturn()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/runtime/panic.go:436 +0x34
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:183 +0x94
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:219 +0x70
  github.com/projectdiscovery/hmap/store/disk.OpenLevelDB()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/disk/leveldb.go:24 +0x38
  github.com/projectdiscovery/hmap/store/hybrid.New()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/hybrid/hybrid.go:108 +0x2c4
  github.com/projectdiscovery/katana/pkg/utils/filters.NewSimple()
      /Users/geekboy/Github/katana/pkg/utils/filters/simple.go:20 +0x1ec
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:47 +0x1f8
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x164
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:130 +0x680
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:476 +0x88
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:125 +0x674
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:197 +0x238
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*session).recover.func1()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:113 +0xb8
  runtime.deferreturn()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/runtime/panic.go:436 +0x34
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:183 +0x94
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:219 +0x70
  github.com/projectdiscovery/hmap/store/disk.OpenLevelDB()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/disk/leveldb.go:24 +0x38
  github.com/projectdiscovery/hmap/store/hybrid.New()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/hybrid/hybrid.go:108 +0x2c4
  github.com/projectdiscovery/fastdialer/fastdialer.NewDialer()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/fastdialer/dialer.go:47 +0x264
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:39 +0xd8
  github.com/projectdiscovery/katana/internal/runner.New()
      /Users/geekboy/Github/katana/internal/runner/runner.go:44 +0x1dc
  main.main()
      /Users/geekboy/Github/katana/cmd/katana/main.go:28 +0x188

Goroutine 27 (running) created at:
  github.com/projectdiscovery/ratelimit.New()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/ratelimit.go:51 +0x1a4
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:59 +0x37c
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x164
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:130 +0x680
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:476 +0x88
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:125 +0x674
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:197 +0x238
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*session).recover.func1()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:113 +0xb8
  runtime.deferreturn()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/runtime/panic.go:436 +0x34
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:183 +0x94
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:219 +0x70
  github.com/projectdiscovery/hmap/store/disk.OpenLevelDB()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/disk/leveldb.go:24 +0x38
  github.com/projectdiscovery/hmap/store/hybrid.New()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/hybrid/hybrid.go:108 +0x2c4
  github.com/projectdiscovery/katana/pkg/utils/filters.NewSimple()
      /Users/geekboy/Github/katana/pkg/utils/filters/simple.go:20 +0x1ec
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:47 +0x1f8
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x164
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:130 +0x680
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x1b8
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x120
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:1230 +0x30c
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:476 +0x88
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:125 +0x674
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:197 +0x238
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:143 +0xa0
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/fmt/scan.go:114 +0x118
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x1c
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x2b8
  github.com/syndtr/goleveldb/leveldb.(*session).recover.func1()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:113 +0xb8
  runtime.deferreturn()
      /opt/homebrew/Cellar/go/1.18.2/libexec/src/runtime/panic.go:436 +0x34
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:183 +0x94
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /Users/geekboy/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:219 +0x70
  github.com/projectdiscovery/hmap/store/disk.OpenLevelDB()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/disk/leveldb.go:24 +0x38
  github.com/projectdiscovery/hmap/store/hybrid.New()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/store/hybrid/hybrid.go:108 +0x2c4
  github.com/projectdiscovery/fastdialer/fastdialer.NewDialer()
      /Users/geekboy/go/pkg/mod/github.com/projectdiscovery/[email protected]/fastdialer/dialer.go:47 +0x264
  github.com/projectdiscovery/katana/pkg/types.NewCrawlerOptions()
      /Users/geekboy/Github/katana/pkg/types/crawler_options.go:39 +0xd8
  github.com/projectdiscovery/katana/internal/runner.New()
      /Users/geekboy/Github/katana/internal/runner/runner.go:44 +0x1dc
  main.main()
      /Users/geekboy/Github/katana/cmd/katana/main.go:28 +0x188
==================
Found 1 data race(s)
exit status 66

Expected Behavior:

no data race

Steps To Reproduce:

go run -race . -u https://example.com

ehsandeep avatar Nov 16 '22 09:11 ehsandeep