Extensions timeout
Mirek Lauš
mirek at laus.cz
Thu Feb 7 08:48:55 EST 2019
I’m still getting extension timeouts, nodeJS process exits due
to signal 6, leaving a coredump behind:
> (gdb) core node.core
> Core was generated by `/usr/local/bin/node lib/extension-wrapper remote'.
> Program terminated with signal 6, Aborted.
> #0 0x0000000804b3447a in ?? ()
How to tell what’s going on?
-ml
>
>
> On 1 Feb, 2019, at 7:26 , Mirek Lauš <mirek at laus.cz> wrote:
>
> Thank you, I will try and let you know.
>
> -m
>
>> On 31 Jan, 2019, at 22:25 , Dan Morphis <dan at milkcarton.com> wrote:
>>
>> Try setting the next level and batch size smaller and see if that helps. Put this in your config.json:
>>
>> "GPN_NEXT_LEVEL": 3,
>> "GPV_BATCH_SIZE": 24,
>>
>>
>>
>> On Thu, Jan 31, 2019 at 12:23 PM Simon Ryf <simon.ryf at dualstack.ch> wrote:
>> Sorry I’m tiered – it isn’t about extensions but general device timeout…
>>
>>
>>
>> From: Users <users-bounces at lists.genieacs.com> on behalf of Simon Ryf <simon.ryf at dualstack.ch>
>> Reply-To: Community support for GenieACS users <users at lists.genieacs.com>
>> Date: Thursday, 31 January 2019 at 22:22
>> To: Community support for GenieACS users <users at lists.genieacs.com>
>> Subject: Re: Extensions timeout
>>
>>
>>
>> Dan and Zaid – do you know that you’re still having a “bug” when using Node >=8.x on that?
>>
>>
>>
>> https://nodejs.org/api/http.html#http_server_keepalivetimeout
>>
>>
>>
>> you need to fix that in server.js I can give you the code I’ve added for that.
>>
>> I’m not really a Node dev and therefore I didn’t yet made a pull request…
>>
>>
>>
>> Cheers
>>
>> Simon
>>
>>
>>
>> From: Users <users-bounces at lists.genieacs.com> on behalf of Dan Morphis <dan at milkcarton.com>
>> Reply-To: Community support for GenieACS users <users at lists.genieacs.com>
>> Date: Thursday, 31 January 2019 at 20:54
>> To: Community support for GenieACS users <users at lists.genieacs.com>
>> Subject: Re: Extensions timeout
>>
>>
>>
>> You can increase the extension timeout by adding "EXT_TIMEOUT": 30000, to the genieacs/config/config.json file. Timeout is in milliseconds.
>>
>>
>>
>> -dan
>>
>>
>>
>> On Tue, Jan 29, 2019 at 11:27 PM Mirek Lauš <mirek at laus.cz> wrote:
>>
>> Hello Genieacs users,
>>
>> my extensions sometimes results in timeout without a reason giving a NodeJS
>> error in the log:
>>
>>> 1: node::Abort(void) [/usr/local/bin/node]
>>> 2: node::PlatformInit(void) [/usr/local/bin/node]
>>> 3: node::Start(int, char**) [/usr/local/bin/node]
>>> 4: _start [/usr/local/bin/node]
>>
>> My extension is called from Provision script:
>>
>>> let genieacsId = declare("DeviceID.ID", {value: 1}).value[0];
>>> let externalIp = declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", {value: 1}).value[0];
>>> let connReqUrl = declare("InternetGatewayDevice.ManagementServer.ConnectionRequestURL", {value: 1}).value[0];
>>>
>>> let args = {id: genieacsId, url: connReqUrl, ip: externalIp};
>>>
>>> log('remoteCallback call script');
>>>
>>> let resp = ext('remote', 'remoteCallback', JSON.stringify(args));
>>> log('remote response ' + genieacsId + ': ' + resp);
>>
>> And the extension:
>>
>>> const API_URL = 'https://remote.url/api/genieacs';
>>> const url = require("url");
>>> const http = require(API_URL.split(":", 1)[0]);
>>>
>>> const logger = require('../../lib/logger');
>>>
>>> function remoteCallback(args, callback) {
>>>
>>> let params = JSON.parse(args[0]);
>>>
>>> const uri = API_URL + "/callback.pl?id=" + params.id + "&url=" + params.url + "&ip=" + params.ip;
>>>
>>> let options = url.parse(uri);
>>> options.headers = { accept: 'application/json', "content-type": 'application/json' };
>>>
>>> logger.info({message: 'post callback ' + params.id});
>>>
>>> let request = http.get(options, function (response) {
>>>
>>> if (response.statusCode == 404) {
>>> return callback(null, null);
>>> }
>>>
>>> if (response.statusCode >= 400) {
>>> return callback(new Error("Unexpected error. Response Code: " +
>>> response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode));
>>> }
>>>
>>> let data = "";
>>>
>>> response.on("data", function(d) {
>>> data = data + d.toString();
>>> });
>>>
>>> response.on("end", function () {
>>> logger.info({message: 'post callback response: ' + data});
>>> return callback(null,data);
>>> });
>>>
>>> });
>>>
>>> request.on("error", function (err) {
>>> logger.info({message: 'post callback error: ' + err});
>>> callback(err);
>>> });
>>>
>>> }
>>>
>>> exports.remoteCallback = remoteCallback;
>>
>>
>> How to debug this?
>>
>> Regards
>> Mirek
>> _______________________________________________
>> Users mailing list
>> Users at lists.genieacs.com
>> http://lists.genieacs.com/mailman/listinfo/users
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.genieacs.com
>> http://lists.genieacs.com/mailman/listinfo/users
>> _______________________________________________
>> Users mailing list
>> Users at lists.genieacs.com
>> http://lists.genieacs.com/mailman/listinfo/users
>
More information about the Users
mailing list