Página 3 de 3

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 7:57 am
por charly
Ricardo,

Muy bien, perfecto. Pero debes comprobar de que curl_global_init se llame una vez para inicializar, y luego ya en los otros procesos evitarlo. He mirado el manual y efectivamente:

"Calling this function more than once will cause unpredictable results."

pero ojo al tip -> "This function should only be called once (no matter how many threads or libcurl sessions hat'll be used) by every application that uses libcurl."

Pero has abierto la solucion a esta problematica, perfect.

Gracias por tus tips.
C.

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 11:48 am
por ricardo arraes
That’s true Charly!
I’ve already seen this part that you just mentioned, but I guess the documentation is a little bit misleading...

In this other page right here, it says:
If you did not already call curl_global_init, curl_easy_init does it automatically. This may be lethal in multi-threaded cases, since curl_global_init is not thread-safe, and it may result in resource problems because there is no corresponding cleanup.
https://curl.se/libcurl/c/curl_easy_init.html

What I understood is that curl_easy_init() will do all the work curl_global_init does and will grant the thread-safe behaviour...

It’s like curl_global_init is deprecated I guess, but the documentation doesn’t say that explicitely

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 12:23 pm
por charly
Ricardo,

I don't know, because i saw also that curl_easy_init() --> "This call MUST have a corresponding call to curl_easy_cleanup when the operation is complete."

Anyway, you will be our beta tester :-)

Thanks Ricardo.
C.

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 12:33 pm
por ricardo arraes
For sure! :lol:

But if take a look at my code examples, there is a corresponding curl_easy_cleanup(). What I took off my code was curl_global* functions.

Well, until now it solved the problems, Imma keep testing and monitoring... :)

Thank you for all the help Charly and everybody!

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 1:54 pm
por Cristobal
Otra preguntonta:
Cuando se pulsa F5 ( refresh de página ) se generan nuevas cookies?, y una nueva sesión ?

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 7:24 pm
por charly
Cristobal,

F5 (refresh) vuelve a crear petición por lo q la cookie va y viene :-)
La session es la misma. De hecho cuando el server detecta un request sabe que session tiene asignada y la carga

C.

Re: Libcurl - multiple requests crashing Apache

Publicado: Mié Feb 10, 2021 11:01 pm
por Cristobal
No entiendo bien lo que quieres decir con que la cookie "va y viene"
Y si la sesión es la misma, no podríamos aprovechar eso para indicar que ya estamos procediendo al "envio", pregunto...

Re: Libcurl - multiple requests crashing Apache

Publicado: Jue Feb 11, 2021 9:00 am
por charly
Cristobal,
Cristobal escribió: Mié Feb 10, 2021 11:01 pm No entiendo bien lo que quieres decir con que la cookie "va y viene"
Una cookie la genera el servidor. Cuando la envia se queda en el cliente. Cada peticion del cliente la devuelve al servidor. El servidor la puede volver a enviar o no... La cookie va y viene :-)

Por eso, a cada F5 al procesar de nuevo la petición al servidor le vuelves a enviar la/s cookies.
Cristobal escribió: Mié Feb 10, 2021 11:01 pm Y si la sesión es la misma, no podríamos aprovechar eso para indicar que ya estamos procediendo al "envio", pregunto...
Si, era una opción. Crear una forma de semáforo para bloquear la petición. Pero parece ser que con la solución que ha encontrado Ricardo, esto ya no haria falta....Yo nunca me habia encontrado en php, pero quizas porque haya alguna capa que ya controla el tema de incialización y creación de subrpocesos en otros hilos, no lo se.

C.