<div dir="ltr"><div dir="ltr">You can increase the extension timeout by adding "EXT_TIMEOUT": 30000, to the genieacs/config/config.json file. Timeout is in milliseconds.<br></div><div dir="ltr"><br></div><div>-dan</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 29, 2019 at 11:27 PM Mirek Lauš <<a href="mailto:mirek@laus.cz" target="_blank">mirek@laus.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Genieacs users,<br>
<br>
my extensions sometimes results in timeout without a reason giving a NodeJS<br>
error in the log:<br>
<br>
>  1: node::Abort(void) [/usr/local/bin/node]<br>
>  2: node::PlatformInit(void) [/usr/local/bin/node]<br>
>  3: node::Start(int, char**) [/usr/local/bin/node]<br>
>  4: _start [/usr/local/bin/node]<br>
<br>
My extension is called from Provision script:<br>
<br>
> let genieacsId = declare("DeviceID.ID", {value: 1}).value[0];<br>
> let externalIp = declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", {value: 1}).value[0];<br>
> let connReqUrl = declare("InternetGatewayDevice.ManagementServer.ConnectionRequestURL", {value: 1}).value[0];<br>
> <br>
> let args = {id: genieacsId, url: connReqUrl, ip: externalIp};<br>
> <br>
> log('remoteCallback call script');<br>
> <br>
> let resp = ext('remote', 'remoteCallback', JSON.stringify(args));<br>
> log('remote response ' + genieacsId + ': ' + resp);<br>
<br>
And the extension:<br>
<br>
> const API_URL = '<a href="https://remote.url/api/genieacs" rel="noreferrer" target="_blank">https://remote.url/api/genieacs</a>';<br>
> const url = require("url");<br>
> const http = require(API_URL.split(":", 1)[0]);<br>
> <br>
> const logger = require('../../lib/logger');<br>
> <br>
> function remoteCallback(args, callback) {<br>
> <br>
>   let params = JSON.parse(args[0]);<br>
> <br>
>   const uri = API_URL + "/<a href="http://callback.pl?id=" rel="noreferrer" target="_blank">callback.pl?id=</a>" + <a href="http://params.id" rel="noreferrer" target="_blank">params.id</a> + "&url=" + params.url + "&ip=" + params.ip;<br>
> <br>
>   let options = url.parse(uri);<br>
>   options.headers = { accept: 'application/json', "content-type": 'application/json' };<br>
> <br>
>   <a href="http://logger.info" rel="noreferrer" target="_blank">logger.info</a>({message: 'post callback ' + <a href="http://params.id" rel="noreferrer" target="_blank">params.id</a>});<br>
> <br>
>   let request = http.get(options, function (response) {<br>
> <br>
>     if (response.statusCode == 404) {<br>
>       return callback(null, null);<br>
>     }<br>
> <br>
>     if (response.statusCode >= 400) {<br>
>       return callback(new Error("Unexpected error. Response Code: " +<br>
>       response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode));<br>
>     }<br>
> <br>
>     let data = "";<br>
> <br>
>     response.on("data", function(d) {<br>
>       data = data + d.toString();<br>
>     });<br>
> <br>
>     response.on("end", function () {<br>
>       <a href="http://logger.info" rel="noreferrer" target="_blank">logger.info</a>({message: 'post callback response: ' + data});<br>
>       return callback(null,data);<br>
>     });<br>
> <br>
>   });<br>
> <br>
>   request.on("error", function (err) {<br>
>     <a href="http://logger.info" rel="noreferrer" target="_blank">logger.info</a>({message: 'post callback error: ' + err});<br>
>     callback(err);<br>
>   });<br>
> <br>
> }<br>
> <br>
> exports.remoteCallback = remoteCallback;<br>
<br>
<br>
How to debug this?<br>
<br>
Regards<br>
Mirek<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.genieacs.com" target="_blank">Users@lists.genieacs.com</a><br>
<a href="http://lists.genieacs.com/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.genieacs.com/mailman/listinfo/users</a><br>
</blockquote></div>