NET-1.1 Bad socket file descriptor avec restclient

Hi,

I worked on a 2nd version of a firmware (The v1 worked but it has performance issue)
I use ej.library.iot.restclient and ej.library.eclasspath.httpsclient for a HTTPS client use to get some JSON on a server.
Between the versions, only the server change (for the https client) but since I change the url and the certificate, when I try to execute a request I have a NET-1.1 (Bad Socket file descriptor).
I have create a simple maven project with the same code (us.monoid.web.resty, 0.3.2) on a standard eclipse to test it (I was convinced, it was an error related to the certificate) but the same code worked.

So know I don’t really know where to look at or how to get more information about this error.
Does someone has a similar issue ?

Regards,

Platform : ESP32
MicroEJ SDK version 19.05
restclient : 1.0.5
httpsclient : 1.2.0-RC201911061056

Hi Alexis,

Could you please provide us the whole stacktrace of the issue? Use this documentation to decode the trace.

One other thing that can go wrong when changing servers is that the cypher suite negotiation would differ and we do not have the right algorithm available.

Regards,
Gaëtan

Hi Gaetan,

I never build a “.fodbg” file (same for “.fo”). The only configuration I have is a standalone Application (I build a microejapp.o and the BSP project build a .bin)
Ho I can build it ? I don’t find any reference to .".fodbg" file in the doc except in the Stack reader page

Regards,

Hi Alexis,

In a standalone application you should use the final executable ELF object instead of the .fodbg file. The rest of the documentation should work.

In Configuration tab, browse the previously generated application binary file with debug information ( application.fodbg in case of a Sandboxed Application or application.out in case of a Standalone Application)

Regards,
Gaëtan

Sorry for the delay I was on another topic. You can find the stacktrace bellow :

Exception in thread “fsmModem” java.net.SocketException: NET-1.1:E=-3
at java.lang.System.getStackTrace(Unknown Source)
at java.lang.Throwable.fillInStackTrace(Throwable.java:82)
at java.lang.Throwable.(Throwable.java:37)
at java.lang.Exception.(Exception.java:18)
at java.io.IOException.(IOException.java:18)
at java.net.SocketException.(SocketException.java:36)
at com.is2t.support.net.SocketChannel.connect(SocketChannel.java:128)
at com.is2t.support.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:157)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:312)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:187)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:169)
at java.net.Socket.connect(Socket.java:228)
at com.is2t.support.net.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:267)
at com.is2t.support.net.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:258)
at sun.net.NetworkClient.doConnect(NetworkClient.java:160)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:192)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:217)
at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:131)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:150)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:109)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:450)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:101)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:655)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:143)
at ej.rest.web.AbstractResource.fill(AbstractResource.java:53)
at ej.rest.web.Resty.fillResourceFromURL(Resty.java:390)
at ej.rest.web.Resty.doGET(Resty.java:338)
at ej.rest.web.Resty.text(Resty.java:228)
at ej.rest.web.Resty.text(Resty.java:261)
at com..geofencing.protocols.http.HttpSSLClient.doGetRequest(HttpSSLClient.java:210)
at com.
.geofencing.interfaces.server_sol.SolServerInterface.downloadGeolocFirmwareFile(SolServerInterface.java:178)
at com..geofencing.stateboxes.modem.FsmModem$StateModem$2.performActionInStateModem(FsmModem.java:268)
at com.
.geofencing.stateboxes.modem.FsmModem.triggerModemFSM(FsmModem.java:446)
at com.******.geofencing.stateboxes.modem.FsmModem.run(FsmModem.java:455)
at java.lang.Thread.run(Thread.java:303)
at java.lang.Thread.runWrapper(Thread.java:454)

Regards,

Alexis Carpentier

This problem seems very specific to the client product. A ticket has been created at the support service level. The exchanges will continue by mail or phone meetings.

Best regards

Jerome S.