Couchbasenetworking错误16,套接字断言在node.js中失败

我有几天前运行良好的node.js脚本,但现在我得到这个错误:

syd@HP-Notebook:~/Desktop$ node db.js connected to database { [Error: Network error] code: 16 } node: ../src/ioplugin.cc:496: virtual int Couchnode::IoOps::updateEvent(lcb_socket_t, void*, short int, void*, void (*)(lcb_socket_t, short int, void*)): Assertion `socket != __null' failed. Aborted (core dumped) 

这里是db.js的代码:

 var crypto = require('crypto'); var db = require('couchbase'); var couchBase = null; var committed = 0; var intervalID = null; function strGen(len) { var text = ''; var charset = "abcdefghijklmnopqrstuvwxyz"; for (var i = 0; i < len; i++) { text += charset.charAt(Math.floor(Math.random() * charset.length)); } return text; } function numGen(len) { var text = ''; var charset = "0123456789"; for (var i = 0; i < len; i++) { text += charset.charAt(Math.floor(Math.random() * charset.length)); } return text; } function newLat() { var lat = Math.floor((Math.random() * 2)+1); if (lat == 1) return 37; return 38; } function createDocument() { var name = 'Test user #' + committed; var licensePlates = strGen(3).toUpperCase() +'-'+ numGen(4); var lat = parseFloat(newLat() + '.' + numGen(8)); var lng = parseFloat('23.' + numGen(8)) var timestamp = (new Date()).getTime().toString(); var docKey = crypto.createHash('md5').update(licensePlates + '-' + name).digest('hex'); var docData = { '_id' : docKey, 'name' : name, 'lp' : licensePlates, 'lat' : lat, 'lng' : lng, 'timestamp': timestamp } //console.log(docKey); //console.log(docData); couchBase.set(docKey, JSON.stringify(docData), function(err){ if (err) { console.log(err); } else if (committed < 1000) { committed++; console.log('#'+committed + ' - ' + ' Committed: ' + docKey); } else { clearInterval(intervalID); console.log('I\'m done!'); } }); } db.connect({ 'user':'taxi', 'password':'taxi', 'hosts':['127.0.0.1:8091'], 'bucket':'taxi' }, function(err, cb) { if (err) { console.log('TEST'); console.log(err); } else { couchBase = cb; console.log('connected to database'); intervalID = setInterval(function(){createDocument(null, null, null)}, 5); } }); 

我过去没有任何问题。 这发生在我在Ubuntu 12.04安装PHP 5.4后,然后返回到PHP 5.3,因为我不能让该版本的PHP的couchbase工作。 FYI的PHP和couchbase目前工作得很好,但没有节点。 正如你所看到的,与数据库的连接已经build立,但是set语句失败。 任何信息,将不胜感激。

UPDATE

这是从另一个脚本相同的错误:

 syd@HP-Notebook:~/Desktop$ node test.js Connection established! Function: get Network error Error: Network error at makeError (/home/syd/node_modules/couchbase/lib/bucket.js:578:18) at getParsedHandler (/home/syd/node_modules/couchbase/lib/bucket.js:625:17) node: ../src/ioplugin.cc:496: virtual int Couchnode::IoOps::updateEvent(lcb_socket_t, void*, short int, void*, void (*)(lcb_socket_t, short int, void*)): Assertion `socket != __null' failed. Aborted (core dumped) 

有关此脚本和源代码的更多信息,请访问: 在bucket.js中使用get&set时发生的Couchbasenetworking错误

PS memcache与node.js工作正常,我可以设置。 couchnode / couchbase失败!

Couchbase C库最近更新到2.1.1,而node.js库不是。 C库的最新工作版本是2.0.7。 要下载它 – 只需从closures的链接replace版本号。 网站到2.0.7。

还在couchbase bugtracker上创build问题 。 希望它会被修复。

UPD:修正了新的couchbase nodejs库版本:1.0.0-beta。