Master
Yes
while go clean -testcache && go test -v -race -run='TestDropPrefixRace' -timeout=1m; do :; done
The TestDropPrefixRace gets stuck into finitely loop. See the logs below
...
badger 2019/07/03 01:46:50 DEBUG: Flushing memtable
badger 2019/07/03 01:46:50 DEBUG: Storing value log head: {Fid:0 Len:46 Offset:1549649}
badger 2019/07/03 01:46:50 DEBUG: STALLED STALLED STALLED: 151.331416ms
badger 2019/07/03 01:46:50 DEBUG: level=0. Status= Size=223613
badger 2019/07/03 01:46:50 DEBUG: level=1. Status= Size=121345
badger 2019/07/03 01:46:50 DEBUG: level=2. Status= Size=308338
badger 2019/07/03 01:46:50 DEBUG: level=3. Status= Size=0
badger 2019/07/03 01:46:50 DEBUG: level=4. Status= Size=0
badger 2019/07/03 01:46:50 DEBUG: level=5. Status= Size=0
badger 2019/07/03 01:46:50 DEBUG: level=6. Status= Size=0
badger 2019/07/03 01:46:50 DEBUG: Waiting to add level 0 table. Compaction priorities: [{level:0 score:2 dropPrefix:[]}]
badger 2019/07/03 01:46:51 DEBUG: Waiting to add level 0 table. Compaction priorities: [{level:0 score:2 dropPrefix:[]}]
badger 2019/07/03 01:46:52 DEBUG: Waiting to add level 0 table. Compaction priorities: [{level:0 score:2 dropPrefix:[]}]
badger 2019/07/03 01:46:53 DEBUG: Waiting to add level 0 table. Compaction priorities: [{level:0 score:2
...
See https://slack-files.com/T9TBKDGN6-FKWNE1FB3-1fdb7dc8a5 for complete logs.
Badger gets stuck at the following for loop
https://github.com/dgraph-io/badger/blob/329b6828fc708b90d01faeaf2b83fb6d1c5138ef/levels.go#L872-L890
The infinite loop is because we stop all compactions in drop prefix
https://github.com/dgraph-io/badger/blob/329b6828fc708b90d01faeaf2b83fb6d1c5138ef/db.go#L1308 and the code in AddLevel0Table waits for level 0 to be compactable or level 1 to have enough space to hold level 0 tables.
https://github.com/dgraph-io/badger/blob/329b6828fc708b90d01faeaf2b83fb6d1c5138ef/levels.go#L877
@sch00lb0y is looking into this.