Libcurl - multiple requests crashing Apache

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje 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.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Avatar de Usuario
ricardo arraes
Mensajes: 87
Registered for: 3 years 5 months
Brazil

Mensaje 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
The work always comes before the belief

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje 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.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Avatar de Usuario
ricardo arraes
Mensajes: 87
Registered for: 3 years 5 months
Brazil

Mensaje 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!
The work always comes before the belief

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

Otra preguntonta:
Cuando se pulsa F5 ( refresh de página ) se generan nuevas cookies?, y una nueva sesión ?
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje 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.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje 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...
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje 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.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Responder