Title: Seeing records that are malformed/corrupted after write · Issue #207 · lmdbjava/lmdbjava · GitHub
Open Graph Title: Seeing records that are malformed/corrupted after write · Issue #207 · lmdbjava/lmdbjava
X Title: Seeing records that are malformed/corrupted after write · Issue #207 · lmdbjava/lmdbjava
Description: Hey, we have a pretty simple lmdb setup - no env flags, all single-threaded, no nested transactions. This is running on many hosts which receive the same change streams and therefore make identical LMDB transactions. Each host will make ...
Open Graph Description: Hey, we have a pretty simple lmdb setup - no env flags, all single-threaded, no nested transactions. This is running on many hosts which receive the same change streams and therefore make identical...
X Description: Hey, we have a pretty simple lmdb setup - no env flags, all single-threaded, no nested transactions. This is running on many hosts which receive the same change streams and therefore make identical...
Opengraph URL: https://github.com/lmdbjava/lmdbjava/issues/207
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Seeing records that are malformed/corrupted after write","articleBody":"Hey, we have a pretty simple lmdb setup - no env flags, all single-threaded, no nested transactions. This is running on many hosts which receive the same change streams and therefore make identical LMDB transactions. Each host will make at most ~400 write transactions per minute, and across the entire fleet, there are maybe like 100k transactions total per minute (just giving an idea of how rare this is, I've seen it happen about once per month at this volume). Transaction size is variable, could include anywhere from 1-1000 operations. But given that every host makes the same transactions, and seeing nothing out of the ordinary in the logs, it seems like there is some race condition or other intermittent bug with lmdbjava/our implementation/the OS. We've also confirmed that this doesn't match any existing bug with the C library.\r\n\r\nThe malformed records we see contain garbage data replacing the bytes from left to right:\r\n\r\nExample normal record (key, value):\r\n`(b'\\x1akey-prefix-129632d9951a047d9\\x1akey-prefix-8302eb7207a2c859d', b'\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00')`\r\n \r\nExample malformed record:\r\n`(b'\\x80\\xe1.\\xad\\xc6\\x7f\\x00\\x00ix-60cf8260ecfb1741f\\x1akey-prefix-38357a98a4\\xf0\\x00\\x00\\x00\\x00\\x00', b'\\xe0\\xdd/\\xad\\xc6\\x7f\\x00\\x00\\x00')`\r\n \r\nThe presence of 7f seems to indicate these are virtual memory addresses.\r\n\r\nI've also run the [Verifier](https://github.com/lmdbjava/lmdbjava/blob/master/src/main/java/org/lmdbjava/Verifier.java) in our env for 1 hour for 61855873 rows and no errors. The issue hasn't been able to be reproduced.\r\n\r\nAny pointers on where else to look?\r\n","author":{"url":"https://github.com/2018ik","@type":"Person","name":"2018ik"},"datePublished":"2023-01-23T22:48:07.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":15},"url":"https://github.com/207/lmdbjava/issues/207"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:47ec261f-fdf7-d851-43c1-463f2997c278 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D16C:258F3F:2300679:2EE6808:696ECC68 |
| html-safe-nonce | c01f187df94842d333fe0cb017b8fa369604585245a1590a4531e5dc277f720b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMTZDOjI1OEYzRjoyMzAwNjc5OjJFRTY4MDg6Njk2RUNDNjgiLCJ2aXNpdG9yX2lkIjoiNzAyMjc2NTAzODM5MTAwMDA4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 1d71f8693d38db506c155bb1bcc0b69a67effe7f2c941ed4b0630b635ed6e21f |
| hovercard-subject-tag | issue:1553956285 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/lmdbjava/lmdbjava/207/issue_layout |
| twitter:image | https://opengraph.githubassets.com/5de94cdd7613c839c8cc4fdca1a21b3cd37c9b4f58382ecb3dc33441607900ad/lmdbjava/lmdbjava/issues/207 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/5de94cdd7613c839c8cc4fdca1a21b3cd37c9b4f58382ecb3dc33441607900ad/lmdbjava/lmdbjava/issues/207 |
| og:image:alt | Hey, we have a pretty simple lmdb setup - no env flags, all single-threaded, no nested transactions. This is running on many hosts which receive the same change streams and therefore make identical... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | 2018ik |
| hostname | github.com |
| expected-hostname | github.com |
| None | b278ad162d35332b6de714dfb005de04386c4d92df6475522bef910f491a35ee |
| turbo-cache-control | no-preview |
| go-import | github.com/lmdbjava/lmdbjava git https://github.com/lmdbjava/lmdbjava.git |
| octolytics-dimension-user_id | 19765602 |
| octolytics-dimension-user_login | lmdbjava |
| octolytics-dimension-repository_id | 60480511 |
| octolytics-dimension-repository_nwo | lmdbjava/lmdbjava |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 60480511 |
| octolytics-dimension-repository_network_root_nwo | lmdbjava/lmdbjava |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 39aed5006635ab6f45e6b77d23e73b08a00272a3 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width