[MDEV-13852] MyRocks/Windows: SyncWAL() is not supported for this implementation of WAL file Created: 2017-09-20 Updated: 2018-05-11 Resolved: 2018-05-11 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - RocksDB |
| Fix Version/s: | 10.2.15 |
| Type: | Task | Priority: | Major |
| Reporter: | Sergei Petrunia | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||
| Description |
|
After the merge of recent changes from the upstream, the following error appeared on Windows: http://buildbot.askmonty.org/buildbot/builders/winx64-packages/builds/4936/steps/test/logs/stdio
This didn't happen before. Need to investigate.
|
| Comments |
| Comment by Sergei Petrunia [ 2017-09-20 ] | |||||||||||
|
varun, can you investigate please? Elena and Wlad know how to get to Windows boxes. | |||||||||||
| Comment by Sergei Petrunia [ 2017-09-20 ] | |||||||||||
|
See also It looks rather unlikely that write_sync.test was the only test that would suffer from an absent SyncWAL implementation although I would not rule this out. Please check. | |||||||||||
| Comment by Sergei Petrunia [ 2017-10-10 ] | |||||||||||
|
The error comes from here
| |||||||||||
| Comment by Sergei Petrunia [ 2017-10-10 ] | |||||||||||
|
The new code sets DBOptions::concurrent_prepare to TRUE (see e.g. rdb_init_rocksdb_db_options). Changing it to FALSE removes the assert there, but then I get the same "SyncWAL() is not supported for this implementation of WAL file" error here:
| |||||||||||
| Comment by Sergei Petrunia [ 2017-10-10 ] | |||||||||||
|
It doesn't seem to be possible to run on Windows currently. void Rdb_background_thread::run() at some point calls
which calls DBImpl::FlushWAL(sync=true) where it makes this check
On Linux, PosixWritableFile::IsSyncThreadSafe() returns true. For Windows, I was not able to find any implementation in port/win that would have IsSyncThreadSafe() return true. | |||||||||||
| Comment by Vladislav Vaintroub [ 2017-11-17 ] | |||||||||||
|
psergey, are you going to file this bug in rocksdb bug tracker? If not , I can do that. I implemented a hackish workaround for now, by using patched header file for win_io.h where IsSyncThreadSafe returns true, in https://github.com/mariadb/server/commit/689168be1240cf61d0ea17529e79660e98d15b46 | |||||||||||
| Comment by Sergei Petrunia [ 2018-04-16 ] | |||||||||||
|
Should be fixed in the recent merge | |||||||||||
| Comment by Sergei Petrunia [ 2018-05-11 ] | |||||||||||
|
Closing as upstream has fixed this and we merged the fix. (i've also removed our workaround) |