[SERVER-31469] WiredTiger queryable restore engine does not export init function symbol on windows Created: 09/Oct/17  Updated: 30/Oct/23  Resolved: 09/Nov/17

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: 3.4.9
Fix Version/s: 3.4.11, 3.6.0-rc4

Type: Bug Priority: Major - P3
Reporter: Steve Briskin (Inactive) Assignee: Daniel Gottlieb (Inactive)
Resolution: Fixed Votes: 0
Labels: neweng, on-prem-3.6.0-rc0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.4
Sprint: Storage 2017-11-13
Participants:

 Description   

Current Ticket Scope:
Although the `queryableWtFsCreate` method is not mangled (extern "C"), that is not sufficient for exporting the symbol on windows for a dynamic function load.

Original ticket description (was configuration error):
MongoDB 3.4.9 with the queryable_wt engine fails to come up on Windows.

Command: mongodb-win32-x86_64-enterprise-windows-64-3.4.9\bin\mongod.exe --config .\test_dbs\queryable\59db7af3686b370558ba4519\dbpath/conf.yaml

Yaml:

systemLog:
  path: .\test_dbs\queryable\59da4037253b911564456b15\mongod.log
  destination: file
net:
  port: 28000
  bindIp: 0.0.0.0
  ssl:
    mode: requireSSL
    PEMKeyFile: .\test_dbs\queryable\59da4037253b911564456b15\dbpath/serverIdentity.pem
    CAFile: .\test_dbs\queryable\59da4037253b911564456b15\dbpath/ca.pem
storage:
  dbPath: .\test_dbs\queryable\59da4037253b911564456b15\dbpath/
  engine: queryable_wt
  queryableBackupMode: true
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
queryableBackup:
  apiUri: 127.0.0.1:8090
  snapshotId: 59da4037253b911564456b15
  memoryQuotaMB: 8192
security:
  authorization: enabled
setParameter:
  authenticationMechanisms: MONGODB-X509

MongoDB Log:

2017-10-08T11:11:52.754-0400 I CONTROL  [initandlisten] MongoDB starting : pid=5912 port=28000 dbpath=.\test_dbs\queryable\59da4037253b911564456b15\dbpath 64-bit host=Steve-PC
2017-10-08T11:11:52.755-0400 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2017-10-08T11:11:52.755-0400 I CONTROL  [initandlisten] db version v3.4.9
2017-10-08T11:11:52.755-0400 I CONTROL  [initandlisten] git version: 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e
2017-10-08T11:11:52.755-0400 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1u-fips  22 Sep 2016
2017-10-08T11:11:52.755-0400 I CONTROL  [initandlisten] allocator: tcmalloc
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten] modules: enterprise 
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten] build environment:
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten]     distmod: windows-64
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten]     distarch: x86_64
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten]     target_arch: x86_64
2017-10-08T11:11:52.756-0400 I CONTROL  [initandlisten] options: { config: ".\test_dbs\queryable\59da4037253b911564456b15\dbpath/conf.yaml", net: { bindIp: "0.0.0.0", port: 28000, ssl: { CAFile: ".\test_dbs\queryable\59da4037253b911564456b15\dbpath/ca.pem", PEMKeyFile: ".\test_dbs\queryable\59da4037253b911564456b15\dbpath/serverIdentity.pem", mode: "requireSSL" } }, queryableBackup: { apiUri: "127.0.0.1:8090", memoryQuotaMB: 8192.0, snapshotId: "59da4037253b911564456b15" }, security: { authorization: "enabled" }, setParameter: { authenticationMechanisms: "MONGODB-X509" }, storage: { dbPath: ".\test_dbs\queryable\59da4037253b911564456b15\dbpath/", engine: "queryable_wt", queryableBackupMode: true, wiredTiger: { engineConfig: { cacheSizeGB: 1.0 } } }, systemLog: { destination: "file", path: ".\test_dbs\queryable\59da4037253b911564456b15\mongod.log" } }
2017-10-08T11:11:52.759-0400 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1024M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),extensions=[local={entry=queryableWtFsCreate,early_load=true,config={apiUri="127.0.0.1:8090",snapshotId="59da4037253b911564456b15",dbpath=".\test_dbs\queryable\59da4037253b911564456b15\dbpath"}},],readonly=true,
2017-10-08T11:11:52.763-0400 E STORAGE  [initandlisten] WiredTiger error (22) [1507475512:762934][5912:1997288320], wiredtiger_open: Error parsing 'create,cache_size=1024M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),extensions=[local={entry=queryableWtFsCreate,early_load=true,config={apiUri="127.0.0.1:8090",snapshotId="59da4037253b911564456b15",dbpath=".\test_dbs\queryable\59da4037253b911564456b15\dbpath"}},],readonly=true,' at offset 267: Unexpected character: Invalid argument
2017-10-08T11:11:52.765-0400 I -        [initandlisten] Fatal Assertion 28561 at src\mongo\db\storage\wiredtiger\wiredtiger_kv_engine.cpp 266
2017-10-08T11:11:52.765-0400 I -        [initandlisten] 
 
***aborting after fassert() failure

This could be a yaml formatting issue. I tried to rule out the "/" vs. "\" in paths as the cause, but all led to the same fasserts.



 Comments   
Comment by Githook User [ 27/Nov/17 ]

Author:

{'name': 'Daniel Gottlieb', 'username': 'dgottlieb', 'email': 'daniel.gottlieb@mongodb.com'}

Message: SERVER-31469: Export queryable_wt entry function for windows and normalize dbpath tracking.

(cherry picked from commit 3bb40ba02b31e6685e84b576b533725b8beb6d20)
Branch: v3.4
https://github.com/10gen/mongo-enterprise-modules/commit/2437c46b1acac0a40b68a90e89440dce4a54cdc8

Comment by Githook User [ 09/Nov/17 ]

Author:

{'name': 'Daniel Gottlieb', 'username': 'dgottlieb', 'email': 'daniel.gottlieb@mongodb.com'}

Message: SERVER-31469: Export queryable_wt entry function for windows and normalize dbpath tracking.
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/3bb40ba02b31e6685e84b576b533725b8beb6d20

Comment by Ian Whalen (Inactive) [ 24/Oct/17 ]

Fine to repurpose this or make a new one - which works for you. I just want to make sure Steve doesn't lose track of the request here.

Comment by Daniel Gottlieb (Inactive) [ 24/Oct/17 ]

There might be a (different) server change, but I need Steve to confirm for me. If that's the case, should we plan to open up a new ticket then, or rather re-purpose this one?

Comment by Ian Whalen (Inactive) [ 24/Oct/17 ]

daniel.gottlieb and steve.briskin since there's no Server code change here, should this just be resolved? I think SERVER tickets might not show up on the Cloud team's In Progress view, even if assigned?

CC david.dana

Comment by Daniel Gottlieb (Inactive) [ 21/Oct/17 ]

I don't have any of the real queryable pieces up and running, but I'm pessimistic the error I'm getting now means will be the next one you hit as well.

2017-10-21T03:14:36.036+0000 E STORAGE  [initandlisten] WiredTiger error (0) [1508555676:36689][3792:1992504192], wiredtiger_open: GetProcAddress: queryableWtFsCreate in local: The specified procedure could not be found.

Let me know if you hit that as well. In the meantime I'll bring in some windows expertise.

Comment by Daniel Gottlieb (Inactive) [ 21/Oct/17 ]

The storage.dbPath needs to have its backslashes escaped java-style.

Normally the dbpath is passed to WT via its own argument. Not as part of the config string. However, queryable needs to pass it as part of the config string. WT treats backslashes as an escape character. The double backslash is used to write an actual backslash.

Comment by Daniel Gottlieb (Inactive) [ 13/Oct/17 ]

[daniel.gottlieb believes there will not be a server change required, but rather just communicating to backup what the problem is with the yaml configuration.

Generated at Thu Feb 08 04:27:09 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.