pedrocarlo
0ab2f2b951
cli options for max and min tick + adjust github action to run with faster clock so no timeouts happen
2025-07-17 12:25:31 -03:00
pedrocarlo
46a7d20c12
clippy
2025-07-17 12:24:43 -03:00
pedrocarlo
4a13286d62
modify clock to use simulated time instead
2025-07-17 12:24:43 -03:00
pedrocarlo
d72a7f5d8e
decrease IO latency time as Turso becomes super slow for some reason
2025-07-17 12:24:43 -03:00
pedrocarlo
7b8eec90bd
edit state machine in Btree for freeing pages + Pager state machine for free_page
2025-07-17 12:24:43 -03:00
pedrocarlo
5771d1a00e
disable wal sync timeout on checkpoint
2025-07-17 12:24:43 -03:00
pedrocarlo
b292e08d2b
inject latency with queuing system
2025-07-17 12:24:43 -03:00
pedrocarlo
dc5f73887e
refactor to require Arc<Completion> in file traits so that we can delay IO calls correctly
2025-07-17 12:24:43 -03:00
pedrocarlo
4ca5595f07
enable io latency + limit number of tests in simulator pull request CI check
2025-07-17 12:22:27 -03:00
Pekka Enberg
e8ac707190
simulator: Disable INSERT INTO .. SELECT for being slow
...
Refs #2129
2025-07-17 09:20:00 +03:00
Levy A.
89911ee8d1
remove to_sql_string from simulator
2025-07-16 12:34:10 -03:00
Levy A.
6fe2505425
add more ToTokens impls
2025-07-16 12:16:31 -03:00
Jussi Saurio
ea427b3b64
sim: provide additional context in assertion failures
2025-07-16 12:05:30 +03:00
Pekka Enberg
99d61aad3c
simulator: Add mention of fsync() issue for disabled fsync faults
2025-07-16 11:15:41 +03:00
Pekka Enberg
b0971f98c2
Merge 'sim: ignore fsync faults' from Jussi Saurio
...
`FaultyQuery` causes frequent false positives in simulator due to the
following chain of events:
- we write rows and flush wal to disk
- inject fault during fsync which fails
- error is returned to caller, simulator thinks those rows dont exist
because the query failed
- we reopen the database i.e. read the WAL back to memory from disk, it
has those extra rows we think we didn't write
- assertion fails because table has more rows than simulator expected
More discussion about fsync behavior in issue #2091
Closes #2110
2025-07-16 11:15:23 +03:00
Jussi Saurio
bb0cad459e
sim: ignore fsync faults
...
`FaultyQuery` causes frequent false positives in simulator due to
the following chain of events:
- we write rows and flush wal to disk
- inject fault during fsync which fails
- error is returned to caller, simulator thinks those rows dont exist because the query failed
- we reopen the database i.e. read the WAL back to memory from disk, it has those extra rows we think we didn't write
- assertion fails because table has more rows than simulator expected
More discussion about fsync behavior in issue #2091
2025-07-16 11:09:54 +03:00
Pekka Enberg
1a8bade9d5
Merge 'Updates to the simulator' from Alperen Keleş
...
- Add generation for UNION/JOIN
- Rearchitect the oracle calling conventions to simplify the code paths
- Add brute force shrinking option by @echoumcp1
Closes #2049
2025-07-16 11:03:41 +03:00
alpaylan
04f5b91e87
fix faulty Update generation within delete_select
2025-07-16 00:06:35 -04:00
alpaylan
28ecb083e1
fix faulty Insert::Select generation within delete_select
2025-07-15 22:35:05 -04:00
alpaylan
9347e43dfc
clippy + fmt
2025-07-15 09:57:55 -04:00
alpaylan
9a921ed4b9
make the large table smaller
2025-07-15 09:56:27 -04:00
alpaylan
6b96789b6d
add random_expr for SELECT <expr>;
2025-07-14 18:48:02 -04:00
Pere Diaz Bou
88ff218810
io: assert small I/O
...
Let's assert **for now** that we do not read/write less bytes than
expected. This should be fixed to retrigger several reads/writes if we
couldn't read/write enough but for now let's assert.
2025-07-14 10:19:41 +02:00
alpaylan
731e6e32e8
updates to the generator distribution
2025-07-14 01:27:01 -04:00
alpaylan
0b3fb2ecdd
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-13 11:10:52 -04:00
Jussi Saurio
a48b6d049a
Another post-rebase clippy round with 1.88.0
2025-07-12 19:10:56 +03:00
Nils Koch
1a91966c7e
fix clippy errors for rust 1.88.0 (manual fix)
2025-07-12 18:58:55 +03:00
Nils Koch
828d4f5016
fix clippy errors for rust 1.88.0 (auto fix)
2025-07-12 18:58:41 +03:00
Jussi Saurio
cb16301157
sim: return LimboError::Busy when busy, instead of looping forever
2025-07-12 10:24:49 +03:00
alpaylan
d99793ca2f
generate parenthesizes expressions by default
2025-07-11 11:08:35 -04:00
Mikaël Francoeur
ed2de42048
only output color on terminal
2025-07-11 10:57:01 -04:00
alpaylan
8917438f54
fix DISTINCT generation without --experimental-indexes
2025-07-11 03:44:03 -04:00
alpaylan
e28ad97ac7
cargo fmt and cargo clippy fixes
2025-07-11 03:35:32 -04:00
alpaylan
3a967f9127
remove rusqlite integrity check, sync generation with --experimental-indexes, move FaultyQuery to disabled by default
2025-07-11 03:35:02 -04:00
alpaylan
b98542d112
cargo fmt and cargo clippy fixes
2025-07-11 02:12:56 -04:00
alpaylan
65fe60ba57
fix the merge conflicts
2025-07-11 02:04:14 -04:00
alpaylan
8f46bbc77e
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-11 01:33:50 -04:00
alpaylan
489602b095
updates to the oracle implementations for differential and doublecheck, add integrity check to the end of the simulation, run cargo clippy --fix
2025-07-11 01:22:40 -04:00
alpaylan
a7b5a2c435
Merge branch 'main' of https://github.com/alpaylan/limbo
2025-07-09 00:14:24 -04:00
alpaylan
44a2fa60a3
add union all cardinality preservation, start generating INSERT INTO t SELECT... queries, add integrity checks to the end of run_simulation
2025-07-09 00:14:13 -04:00
echoumcp1
c5d719dafa
adding better shrinking and cli opts
2025-07-07 21:21:21 -04:00
alpaylan
75b86d1ae2
make the generation cheaper
2025-07-07 13:19:21 -04:00
alpaylan
f5d4429b04
reproduce very specific bug for https://github.com/tursodatabase/turso/issues/1991 with seed 13622105005141748081
2025-07-07 13:11:09 -04:00
pedrocarlo
d21a629cd9
rollback simulator table when we encounter a Rollback query
2025-07-07 13:37:51 -03:00
pedrocarlo
b85687658d
change instrumentation level to INFO
2025-07-07 11:53:45 -03:00
pedrocarlo
4639a4565f
change max_frame count only after wal sync in cacheflush
2025-07-07 11:53:45 -03:00
pedrocarlo
46f59e4f0f
add more instrumentation + add faults to shrunk plan
2025-07-07 11:53:45 -03:00
pedrocarlo
7c8737e292
do not shadow + continue the assertion on injected fault error
2025-07-07 11:53:45 -03:00
pedrocarlo
e32cc5e0d1
fix query shadowing in faulty query
2025-07-07 11:53:45 -03:00
pedrocarlo
711b1ef114
make all run_once be run under statement or connection so that rollback is called
2025-07-07 11:51:25 -03:00