New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flushing block file to disk failed when using external drive on macOS Ventura #26455
Comments
also getting similar internal errors for the past few days. MacOS DiskUtility doesn't report any problems. No other apps are having file IO issues. Tried v24.0.0rc3 and same issue. Able to check blocks for a few minutes then crashes. I recently updated to Ventura but don't know enough to decide if they changed something which would cause this. Let me know if you need more info. Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11 VM Region Info: 0x100000012 is not in any region. Bytes before following region: 15368174 Kernel Triage: |
Update on the issue. The current Bitcoin Core software, V0.22 & V0.23, are not working well with the new Mac Software update 13.0 Ventura. I went back to the previous version, Monterey 12.6, and the software works just fine. How can i help to make the new bitcoin core version, V0.24, more compatible with Mac? Thank you! |
Looks similar to #26400.
|
I've updated the issue title. |
What are filesystems on your external drives? |
ExFAT |
It looks like other projects (LevelDB, SQLite, etc.) have had similar issues with Those projects have all used the same strategy: fallback to I've created a branch that does that. Happy to submit as a PR if this approach seems sound. Edit: It may not fix OP's full issue, as BerkeleyDB falls back to |
A well motivated PR is better than a comment in an issue :) |
Apparently, it is an macOS 13 issue. Upgrading to 13.1 should fix it:
Close? |
|
13.1 is available as a public beta: https://beta.apple.com/sp/betaprogram/welcome |
I can confirm it works in 13.1! Had v24.0.0 running all night without any issues. |
…en FileCommit fails 5408a55 Consolidate Win32-specific error formatting (John Moffett) c95a443 Show descriptive error messages when FileCommit fails (John Moffett) Pull request description: Only raw [`errno`](https://en.cppreference.com/w/cpp/error/errno) int values are logged if `FileCommit` fails. These values are implementation-specific, so it makes it harder to debug based on user reports. For instance, bitcoin/bitcoin#26455 (comment) and [another](https://bitcointalk.org/index.php?topic=5182526.0#:~:text=FileCommit%3A%20FlushFileBuffers%20failed%3A%205). Instead, use `SysErrorString` (or the refactored Windows equivalent `Win32ErrorString`) to display both the raw int value and the descriptive message. All other instances in the code I could find where `errno` or (Windows-only) `GetLastError()`/`WSAGetLastError()` are logged use the full descriptive string. For example: https://github.com/bitcoin/bitcoin/blob/1b680948d43b1d39645b9d839a6fa7c6c1786b51/src/util/sock.cpp#L390 https://github.com/bitcoin/bitcoin/blob/1b680948d43b1d39645b9d839a6fa7c6c1786b51/src/util/sock.cpp#L272 https://github.com/bitcoin/bitcoin/blob/7e1007a3c6c9a921c2b60919b84a60eaabfe1c5d/src/netbase.cpp#L515-L516 https://github.com/bitcoin/bitcoin/blob/8ccab65f289e3cce392cbe01d5fc0e7437f51f1e/src/init.cpp#L164 I refactored the Windows formatting code to put it in `syserror.cpp`, as it's applicable to all Win32 API system errors, not just networking errors. To be clear, the Windows API functions `WSAGetLastError()` and `GetLastError()` are currently [equivalent](https://stackoverflow.com/questions/15586224/is-wsagetlasterror-just-an-alias-for-getlasterror). ACKs for top commit: MarcoFalke: lgtm ACK 5408a55 💡 Tree-SHA512: 3921cbac98bd9edaf84d3dd7a43896c7921f144c8ca2cde9bc96d5fb05281f7c55e7cc99db8debf6203b5f916f053025e4fa741f51458fe2c53bb57b0a781027
I kept getting an error regarding Flushing Block to disk. I've tried to use bitcoin core V0.23 and it doesn't help; although V0.22 was better at loading the backup file, but I couldn't send any of my bitcoin out. I can't seem to load the wallet or the backup file properly. Not a coder and hoping someone can help. I don't think it's an issue with the hard drive. Any suggestion? I'm on MacOSx Ventura 13.0.
Debug.log file:
2022-11-04T20:34:28Z Using wallet /Volumes/Extreme SSD/bruceltd wallet.dat
2022-11-04T20:34:28Z BerkeleyEnvironment::Open: LogDir=/Volumes/Extreme SSD/database ErrorFile=/Volumes/Extreme SSD/db.log
.
.
.
2022-11-04T20:58:16Z FileCommit: fcntl F_FULLFSYNC failed: 25
2022-11-04T20:58:16Z ERROR: SerializeFileDB: Failed to flush file /Volumes/Extreme SSD/peers.176f
db.log file:
fsync: Inappropriate ioctl for device
PANIC: Inappropriate ioctl for device
txn_checkpoint: failed to flush the buffer cache: DB_RUNRECOVERY: Fatal error, run database recovery
The text was updated successfully, but these errors were encountered: