Error: 'Fatal error-No more IDs available. Aborting' expected?
Opened this issue · 7 comments
ofrobots commented
I am trying to run the benchmark inside using the README.docker instructions. The client hangs at this point:
clientuser@4c2d554eb2d1:~/Node-DC-EIS-client$ python runspec.py -f config.json
[20-12-2017 01:35:08] Parsing arguments.
Input options config files: config.json
Starting NODE-DC-EISv1.0 in Cluster Mode
[20-12-2017 01:35:08] Loading database with 10000 records.
In progress...
[20-12-2017 01:35:18] Loading database done.
[20-12-2017 01:35:18] Checking database consistency.
[20-12-2017 01:35:18] Database check successful.
[20-12-2017 01:35:18] Build list of employee IDs.
[20-12-2017 01:35:18] Build list of employee IDs done.
[20-12-2017 01:35:18] Build list of employee last names.
[20-12-2017 01:35:18] Build list of employee last names done.
[20-12-2017 01:35:18] Build list of address zipcodes.
[20-12-2017 01:35:18] Build list of address zipcode done.
[20-12-2017 01:35:18] Building list of Urls
[20-12-2017 01:35:18] Building list of Urls done.
[20-12-2017 01:35:18] Creating temporary log file
[20-12-2017 01:35:18] Starting meminfo collection process
[20-12-2017 01:35:18] Starting time based run.
[20-12-2017 01:35:18] Entering RampUp time window.
[20-12-2017 01:35:18] Started processing of requests with concurrency of [100] for [300] seconds
Fatal error-No more IDs available. Aborting
[20-12-2017 01:35:18] Starting process for post processing.
Is this expected? any idea what might have gone wrong?
uttampawar commented
@ofrobots This error can happens in two ways,
- During a POST request from the client, and
- DELETE request.
Please check url_parmas{} object setting in config.json file in Node-DC-EIS-client directory doesn't have any errors. For example that object has three fields,
url_params: {
"get_ratio": "90",
"post_ratio": "5",
"delete_ratio": "5"
}
Summation of these numbers needs to be 100, moreover post and delete ratio should match. In detail, for every delete request, a record_id gets checked in the database and saved/cached at the client for future use (gets used in the next post request)
See if these ratio's are not maintained properly.
uttampawar commented
@ofrobots Did this helped?
jBarz commented
I am also experiencing the same symptoms using the latest master branch.
On the server, I see the following error
Constructing list of first names
Constructing list of last names
Constructing list of Addresses
{ MongoError: The 'cursor' option is required, except for aggregate with the explain argument
at Function.MongoError.create (/home/barboza/node.v6/temp/Node-DC-EIS/Node-DC-EIS-cluster/node_modules/mongodb-core/lib/error.js:31:11)
at commandCallback (/home/barboza/node.v6/temp/Node-DC-EIS/Node-DC-EIS-cluster/node_modules/mongodb-core/lib/topologies/server.js:1154:66)
at Callbacks.emit (/home/barboza/node.v6/temp/Node-DC-EIS/Node-DC-EIS-cluster/node_modules/mongodb-core/lib/topologies/server.js:119:3)
at Connection.messageHandler (/home/barboza/node.v6/temp/Node-DC-EIS/Node-DC-EIS-cluster/node_modules/mongodb-core/lib/topologies/server.js:295:23)
at Socket.<anonymous> (/home/barboza/node.v6/temp/Node-DC-EIS/Node-DC-EIS-cluster/node_modules/mongodb-core/lib/connection/connection.js:285:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:559:20)
name: 'MongoError',
message: 'The \'cursor\' option is required, except for aggregate with the explain argument',
ok: 0,
errmsg: 'The \'cursor\' option is required, except for aggregate with the explain argument',
code: 9,
codeName: 'FailedToParse' }
jBarz commented
I was able to fix the issue by updating the package.json to use mongoose@4.13.8
Perhaps that is the requirement for the latest docker mongodb image?
davisjam commented
@jBarz Thanks for the fix.
FWIW Bumping the mongoose version causes the server to emit warnings:
(node:26132) DeprecationWarning:
open()is deprecated in mongoose >= 4.11.0, use
openUri()instead, or set the
useMongoClientoption if using
connect()or
createConnection(). See http://mongoosejs.com/docs/connections.html#use-mongo-client
(node:26132) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
jBarz commented
You're welcome.
fyi, I got those warnings too.
davisjam commented
Suggested new name for issue: "package.json lists wrong mongoose version"