Hello,
Thank you for helping me out with this matter.

On Wed, Oct 14, 2020 at 6:40 AM Pablo Tejada <[email protected]> wrote:

> Hello Nicolas,
>
> I still can't believe you have not given up on APE yet. You are probably
> the only person keeping APE alive in the wild. When I first joined this
> project the server was very unstable so it is very hard to believe someone
> is still relying on this server unless they are running a really old
> version which is somewhat stable or are running a custom build like
> yourself.
>
> I remember when I first picked up APE, at first glance and for proof of
> concepts the technology looked great until you tried to do something more
> serious. Then all of its issues and shortcomings become clearly apparent.
> Having to constantly restart the server to keep a somewhat stable service
> is far from ideal.
>
> What site or business are you running, was it a gaming or bidding site?
> Anyhow, I've been looking to do some additional coding in my spare time
> since I don't have a good project to work of my own. Let me know if you
> need help coming up with a strategy to migrate your service to something
> like Pusher, Firebase or Socket.io
>
> On Tue, Oct 13, 2020 at 2:25 PM Alok Vad <[email protected]> wrote:
>
>> Hi,
>> Thank you for your help.
>>
>> On Tue, Oct 13, 2020 at 12:15 PM Nicolas <[email protected]> wrote:
>>
>>> I know this is a very old thread and not many of you are still around.
>>> But let me try my luck once more.
>>>
>>> I can confirm that my APE server sometimes crashes a few hours after
>>> being restarted.
>>>
>>> Oct 13 01:21:03 server56405 kernel: [8981559.624862] traps:
>>> aped_2[19153] general protection ip:418dce sp:7ffeff989060 error:0 in
>>> aped_2[400000+2a000]
>>>
>>> I had recompiled the code a few years ago (to increase memory) so I
>>> guess I have got the last corrections.
>>> The error is 0, pointing to a division by 0. Which I find a bit strange
>>> here. I don't see any division in the code below.
>>> The ip given above leads to ape_disconnect() function from servers.c.
>>> And more precisely to the line:
>>>              if (co->fd == sub->client->fd) {...
>>> I suspect the error does not come from this if statement, but rather the
>>> inside of the if.
>>> It could be the call to http_headers_free()
>>> Or most likely the line: deluser(sub->user, g_ape);
>>>
>>> I don't expect a full resolution of the case and will not recompile a
>>> modified version of the code. But here are a few questions I have. If you
>>> have any clue for any of them, let me know!
>>> 1) From the general protection error line, is there any way to be more
>>> precise as to where the general protection  exactly kicks in? Can we know
>>> if it is on the if statement or below? Could it be in an inner function?
>>> 2) My best guess is that the problem is related to deleting users or
>>> sub-users. And it looks to me that users that were connected before the
>>> program was restarted find a way to interact with the new instance and make
>>> it crash (like a non-existent user asks to logout and boom!).
>>> Do you have any clue how this can be possible?
>>> If I knew that, I could maybe modify my client so that it does not send
>>> a request that makes a new instance crash.
>>>
>>> Some of the C code below.
>>>
>>> Many thanks!
>>>
>>>
>>> static void ape_disconnect(ape_socket *co, acetables *g_ape){
>>> subuser *sub = (subuser *)(co->attach);
>>> if (sub != NULL) {
>>> if (sub->wait_for_free == 1) {
>>> free(sub);
>>> co->attach = NULL;
>>> return;
>>> }
>>> // THIS IS WHERE THE GENERAL PROTECTION KICKS IN.
>>> // THIS IS WHERE THE GENERAL PROTECTION KICKS IN.
>>> // THIS IS WHERE THE GENERAL PROTECTION KICKS IN.
>>> // THIS IS WHERE THE GENERAL PROTECTION KICKS IN.
>>> // THIS IS WHERE THE GENERAL PROTECTION KICKS IN.  ------------>>>
>>> if (co->fd == sub->client->fd) {
>>>  
>>> <<<<<<<<<<-------------------------------------------------------------------------
>>> sub->headers.sent = 0;
>>> sub->state = ADIED;
>>> http_headers_free(sub->headers.content);
>>> sub->headers.content = NULL;
>>> if (sub->user != NULL) {
>>> if (sub->user->istmp) {
>>> deluser(sub->user, g_ape);
>>> co->attach = NULL;
>>> }
>>> }
>>> }
>>> }
>>> }
>>>
>>> void http_headers_free(http_headers_response *headers){
>>> struct _http_headers_fields *fields;
>>> if (headers == NULL) {return;}
>>> fields = headers->fields;
>>> while(fields != NULL) {
>>> struct _http_headers_fields *tmpfields = fields->next;
>>> free(fields->value.val);
>>> free(fields);
>>> fields = tmpfields;
>>> }
>>> free(headers);
>>> }
>>>
>>> void deluser(USERS *user, acetables *g_ape){
>>> if (user == NULL) {
>>> return;
>>> }
>>> left_all(user, g_ape);
>>> FIRE_EVENT_NULL(deluser, user, user->istmp, g_ape);
>>> /* kill all users connections */
>>> clear_subusers(user, g_ape);
>>> hashtbl_erase(g_ape->hSessid, user->sessid);
>>> g_ape->nConnected--;
>>> if (user->prev == NULL) {
>>> g_ape->uHead = user->next;
>>> } else {
>>> user->prev->next = user->next;
>>> }
>>> if (user->next != NULL) {
>>> user->next->prev = user->prev;
>>> }
>>> clear_sessions(user);
>>> clear_properties(&user->properties);
>>> destroy_pipe(user->pipe, g_ape);
>>> /* TODO Add Event */
>>> free(user);
>>> }
>>>
>>>
>>>
>>> void left_all(USERS *user, acetables *g_ape){
>>> CHANLIST *list, *tList;
>>> if (user == NULL) {
>>> return;
>>> }
>>> list = user->chan_foot;
>>> while (list != NULL) {
>>> tList = list->next;
>>> left(user, list->chaninfo, g_ape);
>>> list = tList;
>>> }
>>> }
>>>
>>>
>>>
>>> void clear_subusers(USERS *user, acetables *g_ape){
>>> while (user->subuser != NULL) {
>>> delsubuser(&(user->subuser), g_ape);
>>> }
>>> }
>>>
>>>
>>>>
>>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "APE Project" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/ape-project?hl=en
>>> ---
>>> APE Project (Ajax Push Engine)
>>> Official website : http://www.ape-project.org/
>>> Git Hub : http://github.com/APE-Project/
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "APE Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/ape-project/051fe946-6512-4486-92b7-9ecdcbe1cba9n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ape-project/051fe946-6512-4486-92b7-9ecdcbe1cba9n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "APE Project" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/ape-project?hl=en
>> ---
>> APE Project (Ajax Push Engine)
>> Official website : http://www.ape-project.org/
>> Git Hub : http://github.com/APE-Project/
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "APE Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ape-project/CAOx4vSSg9R%2BNQa1i8uz6BOZ3mw%3DYh_kQnWMCbW5bDjagt%2B_PJA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/ape-project/CAOx4vSSg9R%2BNQa1i8uz6BOZ3mw%3DYh_kQnWMCbW5bDjagt%2B_PJA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "APE Project" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/ape-project?hl=en
> ---
> APE Project (Ajax Push Engine)
> Official website : http://www.ape-project.org/
> Git Hub : http://github.com/APE-Project/
>
> ---
> You received this message because you are subscribed to the Google Groups
> "APE Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ape-project/CAN64Xc4Kfn0Q8C7UTw6At21BSxRH%3DPF4T22AcyODqewDtKKGDw%40mail.gmail.com
> <https://groups.google.com/d/msgid/ape-project/CAN64Xc4Kfn0Q8C7UTw6At21BSxRH%3DPF4T22AcyODqewDtKKGDw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

--- 
You received this message because you are subscribed to the Google Groups "APE 
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ape-project/CAOx4vSTfxx%2Bjsg3ntm7nukLn3Tmyo_ZF4wohVmPfx%3DXpAbsOBQ%40mail.gmail.com.

Reply via email to