Skip to content

fails to start with an empty cf-mysql-release database: Unknown storage engine 'MyISAM' #8

@gberche-orange

Description

@gberche-orange

1.6.0 fails the following message when running against an empty cf-mysql-release database which only supports innodb engines

2017-08-11T11:23:58.25+0200 [APP/PROC/WEB/0] OUT Ensure that all dependencies are up to date...  If this is the first time you have run Etherpad please be patient.
2017-08-11T11:23:58.25+0200 [APP/PROC/WEB/0] OUT Ensure jQuery is downloaded and up to date...
2017-08-11T11:23:58.25+0200 [APP/PROC/WEB/0] OUT Clearing minified cache...
2017-08-11T11:23:58.25+0200 [APP/PROC/WEB/0] OUT Ensure custom css/js files are created...
2017-08-11T11:23:58.25+0200 [APP/PROC/WEB/0] OUT Started Etherpad...
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT [2017-08-11 09:23:58.864] [ERROR] console - ERROR: Problem while initalizing the database
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT [2017-08-11 09:23:58.866] [ERROR] console - Error: ER_UNKNOWN_STORAGE_ENGINE: Unknown storage engine 'MyISAM'
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Query.Sequence._packetToError (/home/vcap/app/src/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Query.ErrorPacket (/home/vcap/app/src/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Protocol._parsePacket (/home/vcap/app/src/node_modules/mysql/lib/protocol/Protocol.js:271:23)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Parser.write (/home/vcap/app/src/node_modules/mysql/lib/protocol/Parser.js:77:12)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Protocol.write (/home/vcap/app/src/node_modules/mysql/lib/protocol/Protocol.js:39:16)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Socket.<anonymous> (/home/vcap/app/src/node_modules/mysql/lib/Connection.js:82:28)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at emitOne (events.js:90:13)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Socket.emit (events.js:182:7)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at readableAddChunk (_stream_readable.js:153:18)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Socket.Readable.push (_stream_readable.js:111:10)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     --------------------
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Protocol._enqueue (/home/vcap/app/src/node_modules/mysql/lib/protocol/Protocol.js:135:48)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Connection.query (/home/vcap/app/src/node_modules/mysql/lib/Connection.js:185:25)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at exports.database.init (/home/vcap/app/src/node_modules/ueberdb2/mysql_db.js:74:6)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at exports.database.init (/home/vcap/app/src/node_modules/ueberdb2/CacheAndBufferLayer.js:110:18)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at exports.database.init (/home/vcap/app/src/node_modules/ueberdb2/CloneAndAtomicLayer.js:48:11)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Object.exports.init (/home/vcap/app/src/node/db/DB.js:41:6)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at /home/vcap/app/src/node/server.js:62:8
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at fn (/home/vcap/app/src/node_modules/async/lib/async.js:641:34)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at Immediate._onImmediate (/home/vcap/app/src/node_modules/async/lib/async.js:557:34)
2017-08-11T11:23:58.86+0200 [APP/PROC/WEB/0] OUT     at tryOnImmediate (timers.js:534:15)
2017-08-11T11:23:58.87+0200 [APP/PROC/WEB/0] OUT Exit status 1

It seems that etherpad-lite is leveraging uber-db which initializes the table forcing a MyISAM if the table is missing, see https://github.com/Pita/ueberDB/blob/master/mysql_db.js#L67 and ether/ueberDB#61 for rationale about related performance optimizations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions