diff --git a/ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js b/ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js index ada1215c9b..55d7acf29e 100644 --- a/ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js +++ b/ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js @@ -458,7 +458,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ /* Inherit certain VFS members from the default VFS, if available. */ opfsVfs.$xRandomness = dVfs.$xRandomness; - opfsVfs.$xSleep = dVfs.$xSleep; dVfs.dispose(); } if(!opfsVfs.$xRandomness && !vfsMethods.xRandomness){ @@ -471,9 +470,14 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ return i; }; } - if(!opfsVfs.$xSleep && !vfsMethods.xSleep){ - vfsMethods.xSleep = (pVfs,ms)=>0; - } + /** + This VFS's xSleep() must be a no-op. In this environment, + only db handles within the same thread can ever come into + contention, and that contention cannot be resolved if + one of the handles sleeds in that same thread. + See also: forum:3f0794c5d8 + */ + vfsMethods.xSleep = (pVfs,ms)=>0; sqlite3.vfs.installVfs({ vfs: {struct: opfsVfs, methods: vfsMethods} }); diff --git a/ext/wasm/jaccwabyt/jaccwabyt.js b/ext/wasm/jaccwabyt/jaccwabyt.js index 6fa86c3416..01f7ae6156 100644 --- a/ext/wasm/jaccwabyt/jaccwabyt.js +++ b/ext/wasm/jaccwabyt/jaccwabyt.js @@ -334,7 +334,6 @@ function StructBinderFactory(config){ const __freeStruct = function(ctor, obj, m){ const ii = getInstanceHandle(obj, false); if( !ii ) return; - rmInstanceHandle(obj); if( !m && !(m = ii.p) ){ console.warn("Cannot(?) happen: __freeStruct() found no instanceInfo"); return; @@ -361,6 +360,7 @@ function StructBinderFactory(config){ m,'threw. NOT propagating it.',e); } } + rmInstanceHandle(obj); delete obj.ondispose; if(ctor.debugFlags.__flags.dealloc){ log("debug.dealloc:",(ii.ownsPointer?"":"EXTERNAL"), diff --git a/manifest b/manifest index e7f9173dfc..dc181e9261 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sthe\sOPFS\sSAHPool\sVFS's\sxLock/xUnlock\sto\sproperly\sdeal\swith\smultiple\shandles\sto\sthe\ssame\sunderlying\sfile\swithin\sthe\ssame\sJS\sthread.\sAddresses\s[forum:5e66a600ba6e57de|bug\sreport\s2026-09-30T10:49:15Z].\sAlso\s(unrelated\sbut\scode-adjacent)\smake\ssure\sthat\sthe\sVFS\sreleases\sall\sof\sits\sinternal\smappings\swhen\sit's\spaused. -D 2026-09-30T11:56:05.637 +C Cherry-pick\sfixes\s[c9dd4d88e44a]\sand\s[fa44643f65d]\sinto\sbranch-3.53. +D 2026-09-30T13:32:02.026 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -606,7 +606,7 @@ F ext/wasm/api/sqlite3-license-version-header.js 98d90255a12d02214db634e041c8e7f F ext/wasm/api/sqlite3-opfs-async-proxy.c-pp.js 25e31482b04293a33d7599f1459eb552b3eb36ca10c02c816122d3308bf80cb2 F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c8fb7f0630264e6c7fa0e57515d F ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js e3758c4ef4375e4b65e847c7444532a3a15389855599cd33233fb4aff4bdfcd4 -F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js c90f0ec0543a6a5c6a7aa0db089d6a324910490292c829f3c7160ef2c5fec19d +F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js 601f72535bf6a6fa6ce2357e86717b72ae4523d64c8f7b32e0f2cc20551cd430 F ext/wasm/api/sqlite3-vfs-opfs-wl.c-pp.js 3dbd918ef037cd8fa9c7b4dccb3c8637b228638654c429e7df6acab5981c75e2 F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 3da8fe72dc9e76614a9c102b92e777ce03f81d788b607701c828d8fcbac44b06 F ext/wasm/api/sqlite3-vtab-helper.c-pp.js 366596d8ff73d4cefb938bbe95bc839d503c3fab6c8335ce4bf52f0d8a7dee81 @@ -633,7 +633,7 @@ F ext/wasm/fiddle/fiddle.js 84fd75967e0af8b69d3dd849818342227d0f81d13db92e0dcbc6 F ext/wasm/fiddle/index.c-pp.html 02f063ef30b8124f311029855c4439e77bc6505d1bf65a163d88c064a63ee9d9 F ext/wasm/index-dist.html db23748044e286773f2768eec287669501703b5d5f72755e8db73607dc54d290 F ext/wasm/index.html 5bf6cf1b0a3c8b9f5f54d77f2219d7ae87a15162055ce308109c49b1dcab4239 -F ext/wasm/jaccwabyt/jaccwabyt.js 4e2b797dc170851c9c530c3567679f4aa509eec0fab73b466d945b00b356574b +F ext/wasm/jaccwabyt/jaccwabyt.js 6f0668b6d445b6f1be219662d43d1795184cccd3b39ac57308e69e779acc9594 F ext/wasm/jaccwabyt/jaccwabyt.md 6aa90fa1a973d0ad10d077088bea163b241d8470c75eafdef87620a1de1dea41 F ext/wasm/libcmpp.c 0e2cec7de7c9cbe7941e6a4dc0c123cec736578a3eeae7828ac18706acd3cea6 F ext/wasm/mkdist.sh f8883b077a2ca47cf92e6f0ce305fbf72ca648c3501810125056c4b09c2d5554 x @@ -2207,9 +2207,10 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P ea1d55e202e6e6212d3d2286895ca343b820b96b50e6281ebaf1d23514684811 -Q +9e2caaa382cee5d5df26ad3af7d727ab3f68a912e39655ffcc52f592d5a08a8d -R 95f676ce87296e1c8d340b8373c77ee7 +P 079400229e098b807143001c0e534b48e8dcec6c9171d6c10d8bec0c59254ec4 +Q +c9dd4d88e44a9eae4ea11d0ce5491c7ac2ac2d60a3bc83ed485812234be374da +Q +fa44643f65d6815c8c21ec25e7aa6e39a00fdc818d1d058e03123042e45884e1 +R f319561a13d812860e127ddb45797290 U stephan -Z 23dc01e62652e0aa6b18abf5484a38f7 +Z 10bf921d454278b2412f6c46f970d692 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 750a26081c..004fbaaa0f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -079400229e098b807143001c0e534b48e8dcec6c9171d6c10d8bec0c59254ec4 +f774529206f3cb41ff9e40133eec374c4b790c0315d1b895cb20b0893d17a4bf