[Bug] HTTPSecureSocket linux 2019r1

Buongiorno a tutti,

Non so di preciso se colpa della classe HTTPSecureSocket, ma da quando ho compilato la webapp in cgi con la versione 2019 r1 che gira sotto apache2 su ubuntu server quando provo a inviare un messaggio tramite HTTPSecureSocket la webapp crasha istantaneamente. Purtroppo non ho ancora avuto tempo di fare tutti i dovuti test in debug perch sviluppo su windows e li non da problemi. E’ capitato a qualcun altro?

Grazie

I also found the same problem, no problem on 2018R4.

Thank you so much! You saved me some time for testing. So for now I’m going back to 2018r4.

…veramente ho lo stesso problema con urlConnection, mentre con HTTPSecureSocket funziona bene
(ma non ho provato ancora tutte le possibilit, solo un semplice get)

same here:
https://forum.xojo.com/53459-xojo-2019-r1-bug

[quote=432954:@Antonio Rinaldi]…veramente ho lo stesso problema con urlConnection, mentre con HTTPSecureSocket funziona bene
(ma non ho provato ancora tutte le possibilità, solo un semplice get)[/quote]

Ciao antonio,
grazie come sempre per il feedback. Io invece ho provato solo la post. Credo che sia un problema del compilato perchè durante un test in debug su ubuntu desktop sembrava funzionare tutto.

Ho fatto una web app di test (linux - cgi su apache) e HttpSecureSocket funziona sia in modalit diretta (parafrasando la terminologia di URLConnection) che per eventi. Sia per GET che per POST
URLConnection invece mi butta gi l’app probabilmente perch richiede la stessa libreria di Xojo.Net.HttpSocket (ma la cosa qui ambigua e ho chiesto lumi al riguardo) e non riesco a capire come viene richiesta/caricata visto che LDD non mostra nessuna dipendenza al riguardo.

Io purtroppo non ho mai usato URLConnection e Xojo.Net.HttpSocket quindi non saprei darti delle informazioni più precise. Ho visto dalla documentazione che entrambe utilizzano libsoup 2.4 ma per HTTPSecureSocket non sembrerebbe essere necessaria. Io uso una banalissima post per inviare le fatture tramite msg SOAP(https://forum.xojo.com/51108-soap-client-fattura-elettronica).

Antonio hai percaso avuto illiminazioni al riguardo? A me il problema persiste anche con xojo 2019r1.1.
Se hai news fammi sapere,
Grazie

Ho provato con un servizio soap e https e funziona.
Dovresti verificare se nelle dipendenze hai liblzma utilizzando LDD

A quanto pare non tutti hanno questa libreria in posizione richiamabile… e non è (esattamente come libsoup) relocabile nella cartella lib.

[quote=439041:@Antonio Rinaldi]Ho provato con un servizio soap e https e funziona.
Dovresti verificare se nelle dipendenze hai liblzma utilizzando LDD

A quanto pare non tutti hanno questa libreria in posizione richiamabile… e non è (esattamente come libsoup) relocabile nella cartella lib.[/quote]

Ho provato ad eseguire il comando LDD sia sull’app compilata con 2018R4 che 2019R1.1 e l’output(vedi allegato img) è identico, infatti non penso abbiamo cambiato le librerie da una versione all’altra. Sulla 2018R4 funziona tutto mentre 2019r1/1.1 appena tento di inviare il msg l’app crasha. Hai provato a fare test anche sulla grandezza del messaggio? perchè la fattura contiene oltre all’xml codificato in base64 anche eventuali allegati anchessi in base64. La cosa strana è che su windows in debug funziona tutto, in debug su ubuntu mi pare fosse ok, l’unico problema lo da sul compilato in cgi … qualche consiglio per scovare il problema?

Grazie

Aggiornamento:
Ho provato a inviare il msg soap senza allegato base64 ed andato tutto a buon fine. Appena ho provato a inviare un file molto grande (per fare un test ho inviato un immagine da 3mb visto che non posso inviare fatture di test :P) crashato. Confermo che in debug su windows funziona.

ma il socket su una window o in sessione/app/modulo?
Magari va in qualche forma di timeout o sulla form o in generale
oppure il server ha qualche limite nella dimensione dei post.

E’ su una windows, ma funzionando con la 2018r4 non credo sia un problema legato al codice/impostazioni server. Per la cosa che non capisco che con la nuova release hanno modificato Xojo.Net.HttpSocket ma non credo anche HTTPSecureSocket … colpa delle nuove integrazioni del framework 2.0?

Vorrei provare a fornire delle informazioni pi precise ma non so come debuggare il problema. Non esiste un modo per registrare i crash dell’app nei log?

Dipende.
Fino a Xojo puoi usare l’evento UnhandledException dell’app e scrivere su un file tutta la catena.
Se il gestore cgi probabilmente trovi qualcosa nei log del server, ma onestamente non so se sono chiari… apache su linux veramente minimale nel descrivere il problema e se il crash a quel livello (ovvero nell’interazione server-xojo) devi lavorare parecchio per interpretarlo. Su windows non lo so, ho abbandonato i server windows per il web da una vita (eppure applicazioni scritte praticamente su tavolette di cera girano ancora)

Non ho capito cosa dipende, se la possibilità che il codice dalla 2018 alla 2019 fallisca, oppure il framework 2.0 che è palese che hanno iniziato ad integrarlo…

Cmq avevo già provato a debuggare il problema tramite l’evento UnhandledException (inserendo la scrittura dell’errore nei log di sistema o file di testo) ma purtroppo crasha completamente e non passa da quell’evento. I log di apache danno questo:

Use of uninitialized value $length in subtraction (-) at test/test.cgi line 131.: test/test.cgi Use of uninitialized value $length in numeric eq (==) at test/test.cgi line 130.: test/test.cgi End of script output before headers: test.cgi Use of uninitialized value $length in subtraction (-) at test/test.cgi line 131.: test/test.cgi Use of uninitialized value $length in numeric eq (==) at test/test.cgi line 130.: test/test.cgi End of script output before headers: test.cgi

ma purtroppo credo che da questi erorri non ci possiam ofare nulla. Lo script in un punto fallirà a causa della lunghezza del messaggio soap, sbaglio?

Potrebbe essere dovuta al fatto che con il framework 2.0 molto probabilemte (da quello che ho letto sul forum) non supporterà più il cgi?

Se qualcuno ci capisce qualcosa, visto che c’ un problema nella libreria libSSLsocket allego log del crash:

Test[22470]: segfault at ea87c53c ip 00000000f25d0050 sp 00000000ea87c540 error 6 in libSSLSocket.so[f2576000+1d6000]

Interessante

Dovresti controllare quanta memoria hai a disposizione per la tua area, e cercare di confrontarla con quanta ne usi e quanto grosso l’attachment.

Magari in qualche tentativo puoi arrivarci, visto che provi con una immagine che dovrebbe essere in base 64, puoi provare con una stringa lunga le met e poi levando o aggiungendo la relativa meta fino ad individuare la lunghezza che non crasha.

Con il valore della memoria a disposizione, con quello di memoria occupata prima della richiesta e con quello della dimensione che provoca il crash possiamo capire se un limite della macchina o un problema in generale del socketSSL.

Purtroppo ho fatto alcuni test e crasha anche senza specificare l’allegato… A questo punto non so più cosa fare. Ho solo cercato anche io l’errore 6 che dice “means a write to an unmapped user address” ma quindi a questo punto direi che non è un problema del codice in xojo… Apro feedback? mi viene il dubbio che possa dare problemi il certificato però non so.

Crea un feedback possibilmente con un esempio di chiamata (bastano due pulsanti uno con attachment e uno senza)

Poi fammi sapere il numero di feedback cos lo seguo.