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
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
Mikaël Francoeur
ed2de42048
only output color on terminal
2025-07-11 10:57:01 -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
pedrocarlo
897426a662
add error tracing to relevant functions + rollback transaction in step_end_write_txn + make move_to_root return result
2025-07-07 11:50:21 -03:00
pedrocarlo
5f9abb62c4
enable faulty query
2025-07-07 11:50:21 -03:00
Pekka Enberg
931a33642e
Merge 'add interactive transaction to property insert-values-select' from Pere Diaz Bou
...
Closes #1958
2025-07-07 14:29:02 +03:00
Pere Diaz Bou
f7c6d68435
fmt
2025-07-07 08:16:21 +00:00
Pere Diaz Bou
e34058c2d7
clippy
2025-07-07 10:14:40 +02:00
Jussi Saurio
ec939eaaa9
sim: add feature flags (indexes,mvcc) to CLI args
2025-07-07 10:27:15 +03:00
Pere Diaz Bou
897f13c173
add interactive transaction to property insert-values-select
2025-07-04 15:50:46 +02:00
pedrocarlo
251926cd79
leave io faults and fsync query disabled by default
2025-06-30 12:36:26 -03:00
pedrocarlo
4a32f83bd0
add cli option to disable faulty query
2025-06-29 15:56:03 -03:00
pedrocarlo
119c537334
add FaultyQuery Property to inject fault in a query and then assert that it did not modify the database
2025-06-29 15:54:27 -03:00
pedrocarlo
b578f2249a
add FaultyQuery
2025-06-29 14:22:11 -03:00
pedrocarlo
ac34928d53
fix delete shadowing + build result rows from fsync query
2025-06-29 12:44:13 -03:00
pedrocarlo
fcabc18bbc
add description to property
2025-06-29 12:40:53 -03:00
pedrocarlo
2461b4eb46
fix shadowing and run a query after the fsync query to try to catch a problem with the WAL
2025-06-29 12:40:53 -03:00
pedrocarlo
684a23020d
add cli options to disable fsync property
2025-06-29 12:40:53 -03:00
pedrocarlo
0288f4aac6
introduce fsync interaction + property
2025-06-29 12:40:52 -03:00
pedrocarlo
f806d97d0f
keep track when fsync is called
2025-06-29 12:40:23 -03:00
Pekka Enberg
725c3e4ddc
Rename limbo_sqlite3_parser crate to turso_sqlite3_parser
2025-06-29 12:34:46 +03:00
Pekka Enberg
53ba3ff926
Rename limbo_core crate to turso_core
2025-06-29 09:59:17 +03:00
pedrocarlo
9aa733f80c
sleep inside Io completion
2025-06-26 22:17:28 -03:00
pedrocarlo
e2aafacbb4
add cli option to adjust latency probability
2025-06-26 22:17:27 -03:00
pedrocarlo
c8937976e5
generate_latency for each io operation on the file
2025-06-26 22:17:27 -03:00
pedrocarlo
56547f7127
change refcell values to cell
2025-06-26 22:17:27 -03:00
Pekka Enberg
2fc5c0ce5c
Switch to runtime flag for enabling indexes
...
Makes it easier to test the feature:
```
$ cargo run -- --experimental-indexes
Limbo v0.0.22
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database
limbo> CREATE TABLE t(x);
limbo> CREATE INDEX t_idx ON t(x);
limbo> DROP INDEX t_idx;
```
2025-06-26 10:07:28 +03:00
Jussi Saurio
9aae1ff00a
sim: add Fault::ReopenDatabase
...
Add fault type that reopens the DB and reconnects the connections.
It purposefully does not call conn.close(), as the default behavior
of that method is to checkpoint the database.
This easily exposes multiple manifestations of DB/WAL corruption caused by
this issue: https://github.com/tursodatabase/limbo/issues/1725
in fact, in my testing, every run fails when this fault is enabled. Hence I've
added the --disable-reopen-database flag if you want to try to find some other
bugs.
2025-06-24 14:41:50 -03:00
Pekka Enberg
b1cd7229c7
Merge 'sim: when loading bug, dont panic if there are no runs' from Jussi Saurio
...
Closes #1820
2025-06-24 16:07:52 +03:00
Jussi Saurio
73db450b8b
sim: when loading bug, dont panic if there are no runs
2025-06-24 15:46:15 +03:00
Jussi Saurio
cff96964df
Fix singlequote escaping and unescaping
2025-06-24 14:58:25 +03:00
Nils Koch
2827b86917
chore: fix clippy warnings
2025-06-23 19:52:13 +01:00
pedrocarlo
c9b11dd173
simulator integrity check per query
2025-06-22 21:47:17 -03:00
Pekka Enberg
90c1e3fc06
Switch Connection to use Arc instead of Rc
...
Connection needs to be Arc so that bindings can wrap it with `Mutex` for
multi-threading.
2025-06-16 10:43:19 +03:00
pedrocarlo
6dfd4700e9
simulator: disable all ansi encodings for debug print log file
2025-06-14 19:34:40 -03:00
Jussi Saurio
f7fa56ecfd
Change integrity check failure to say 'simulation failed:'
...
our AWS nightly sim looks for a line 'simulation failed:' in the process
output to capture context for the github issues it creates.
if the sim passes otherwise but integrity check fails, then this log line
must also be present there, otherwise the aws sim will panic due to not finding
a suitable line.
2025-06-13 11:26:04 +03:00
pedrocarlo
83d72db901
better error messages + cleaner printing of file stats + tracing
...
instrumentation in `execute_interaction`
2025-06-11 11:32:45 -03:00
pedrocarlo
e19fa9f951
add additional cli options to disable other properties
2025-06-11 11:32:45 -03:00
pedrocarlo
edc1c6fbc6
force predicate in SelectSelectOptimizer to evaluate to a boolean value
2025-06-11 11:32:45 -03:00
pedrocarlo
b2fd5b9cd1
change CompoundPredicate to generate a true_clause for a single row and not for column_values + tests
2025-06-11 11:32:45 -03:00