Skip to content

Fix fsck use earl.Parse to correctly resolve database path cross-platform#10915

Merged
elianddb merged 2 commits into
mainfrom
elian/fsck1863
Apr 21, 2026
Merged

Fix fsck use earl.Parse to correctly resolve database path cross-platform#10915
elianddb merged 2 commits into
mainfrom
elian/fsck1863

Conversation

@elianddb

Copy link
Copy Markdown
Contributor

fsck.go was using url.Parse to parse the database file URL. On Windows, url.Parse places the drive letter into the URL Host field rather than Path, causing dbfactory/file.go to construct an invalid file path.

@coffeegoddd

coffeegoddd commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

@elianddb DOLT

read_tests from_latency to_latency percent_change
covering_index_scan 0.55 0.55 0.0
groupby_scan 9.91 10.27 3.63
index_join 1.86 1.89 1.61
index_join_scan 1.37 1.37 0.0
index_scan 22.28 22.28 0.0
oltp_point_select 0.26 0.26 0.0
oltp_read_only 5.09 5.09 0.0
select_random_points 0.52 0.52 0.0
select_random_ranges 0.57 0.56 -1.75
table_scan 23.1 22.28 -3.55
types_table_scan 70.55 68.05 -3.54
write_tests from_latency to_latency percent_change
oltp_delete_insert 6.43 6.32 -1.71
oltp_insert 3.13 3.07 -1.92
oltp_read_write 11.24 11.24 0.0
oltp_update_index 3.19 3.19 0.0
oltp_update_non_index 3.02 3.02 0.0
oltp_write_only 6.09 5.99 -1.64
types_delete_insert 7.04 6.91 -1.85

@coffeegoddd

coffeegoddd commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

@elianddb DOLT

test_name from_latency_p95 to_latency_p95 percent_change
tpcc-scale-factor-1 54.83 54.83 0.0
test_name from_server_name from_server_version from_tps to_server_name to_server_version to_tps percent_change
tpcc-scale-factor-1 dolt bb6bdd6 44.66 dolt 1a52746 44.6 -0.13

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

comparing_percentages
100.000000 to 100.000000
version result total
1a52746 ok 5937471
version total_tests
1a52746 5937471
correctness_percentage
100.0

@elianddb elianddb changed the title fix(fsck): use earl.Parse to correctly resolve database path cross-platform Fix fsck use earl.Parse to correctly resolve database path cross-platform Apr 21, 2026

@fulghum fulghum left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@elianddb elianddb merged commit d68d8d6 into main Apr 21, 2026
32 of 33 checks passed
seanmartinsmith added a commit to seanmartinsmith/beads that referenced this pull request Apr 24, 2026
prePushFSCK previously wrapped any dolt fsck error as ErrDanglingReference
with 'aborting push to prevent propagating corrupt chunks', including
cases where fsck could not even open the database (environmental /
tooling issues, not integrity problems).

This misled users into thinking their healthy databases were corrupt.
Concrete example: dolthub/dolt#10915 (Windows url.Parse bug, pre-v1.86.4)
caused fsck to construct a malformed file path and fail to open; users
hitting this saw the misleading 'dangling chunk reference' error from bd.

Now detect the two known 'couldn't open' signatures from dolt and log a
warning instead of aborting. Real integrity failures (dangling chunks
in an openable db) still abort as before.

Fixes gastownhall#3464
@tbantle22 tbantle22 deleted the elian/fsck1863 branch May 20, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants