google / google/fuzzbench

Fuzzbench silently stops measuring runs when SQLite database is "full"

Open
#2,070 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
1.2k
Forks
302
PR merge metrics
No merged PRs in 30d

Description

When the SQLite database is on a disk which is approaching being filled, it will cause Fuzzbench's dispatcher to emit the following error:
```
Process Process-1:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1880, in _execute_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 733, in do_executemany
cursor.executemany(statement, parameters)
sqlite3.OperationalError: database or disk is full
```

However, after this point, the runs continue. In some cases, it seems that SQLite's detection of the fullness of the filesystem is overly cautious (e.g., this occurred at 91% usage... of a 3TB drive), and also that Docker seems to interfere with the fullness detection in some way.

*regardless*, this is a truly hard error that should cause Fuzzbench to terminate all runs early. As of now, it silently stops measurement but the runs keep going, which made this error very difficult to find.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.