artanis
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error From "art work" on Vanilla Artanis Project


From: Nala Ginrut
Subject: Re: Error From "art work" on Vanilla Artanis Project
Date: Sat, 22 Feb 2020 17:38:26 +0800
User-agent: mu4e 1.3.5; emacs 26.1

BTW, please use `lscpu' the check if the endianess is little endian. I
think most of ARM system use little by default. And the epoll of Artanis
does assume it's little endian which should be fixed in the future.

Best regards.

Jaft writes:

> Of course! I'd wanted to be able to web development with Guile for the 
> longest time and was delighted when I found Artanis; I'm happy to help in 
> whatever way I can.
> I don't have a separate ARM device but I could write a different distro to my 
> microSD and try that on the same Pi?
> Would Ubuntu be alright to try next? I'm most familiar with debian-based ones 
> (so others might take me longer to get everything setup, again) but, given 
> the two are related, I could understand wanting to try a completely different 
> distro (I'm currently running off of Raspbian Lite).
> Jonathan
>
> Sent from Yahoo Mail on Android
>
>   On Sat, Feb 22, 2020 at 1:28 AM, Nala Ginrut<address@hidden> wrote:
> Thanks for spending your time Jaft!
> The log showed weird things, it seems always get 0 as the socket fd.
> To my understand, 0 is OK to be a valid socket fd, but it means the
> program has closed stdin somewhere. I don't remember I did such
> operation.
>
> The event-loop always get 0 from epoll_wait (three times in your
> attached log), and close it each time. So it does nothing serving work.
>
> In the very beginning with the simplest test, the expected log to show
> "Checking event" should be "Checking event (16 . 1)", and 16 is the
> listenning socket in your log.
> There's no way to check other event before getting any valid socket fd from
> accepting the listenning socket. So the first checking should be the
> listenning socket 16 according to your log.
>
> Do you have other distro on ARM to test? I suspect it's a wrong result
> return from epoll_wait.
>
> Best regards.
>
>
> Jaft writes:
>
>>  *it's the last thing put out before languishing. After things time out, the 
>> rest of what's in the logs appear. Just wanted to mark when in the logs 
>> things hang in case that info. is useful, any.
>> Jonathan
>>    On Friday, February 21, 2020, 7:45:56 PM CST, Jaft <address@hidden> wrote:
>>
>>  No worries! I thought I was, as well, so perhaps I need to double check 
>> that…
>> I honestly wouldn't know. I didn't mess with any settings or the like other 
>> than the port number.
>> Though things do work on my local machine and not the pi so, perhaps, 
>> there's a Raspberry Pi setting screwing things up I'm not aware of?
>> In any case, I've attached the result of "art work --debug"; after hitting 
>> Artanis, the last thing put out by art is "The client (0 . 1) is ready to 
>> shutdown" and then things languish before eventually timing out.
>> Jonathan    On Friday, February 21, 2020, 2:23:31 AM CST, Nala Ginrut 
>> <address@hidden> wrote:
>>
>>
>> Jaft writes:
>>
>>> artanis/server/epoll.scm:211:12: In procedure epoll-ctl:Throw to key
>>> `artanis-err' with args `(500 #<procedure epoll-ctl (epfd op fd event
>>> #:key check-exists?)> "~a: ~a" (15 2 0 #f "Bad file descriptor")
>>> (9))'.
>>
>> Wait, why file descriptor 0 appeared here?
>> 0 is stdin, obviously it can not be any connecting socket. It shouldn't
>> even be added into epoll event set in Artanis.
>>
>> Now I'm suspecting it's not an Artanis bug.
>> But anyway, please do as my last mail described, and attach the debug
>> log please. Thanks!
>>
>> Best regards.
>>
>>
>>
>>> Jonathan
>>>    On Thursday, February 20, 2020, 2:59:53 AM CST, Nala Ginrut 
>>> <address@hidden> wrote:
>>>
>>>
>>> Have you seen my other mails, I've obsoleted the patch that I gave you,
>>> and resubmit a new one in the same branch name. So you have to delete
>>> the old one and checkout the new one from the remote.
>>>
>>> https://gitlab.com/NalaGinrut/artanis/-/commit/08b87717ade40ad0d8fbe0a6c62620cdc30e6f56
>>>
>>>
>>>
>>> Jaft writes:
>>>
>>>>  From the fix/epoll-exists-check branch?
>>>> That's the one I pulled and built; the errors look similar but, if you 
>>>> look at the very end of the error messages, the first one says 
>>>> "artanis/server/epoll.scm:220:4: In procedure exists-in-epoll?:" while my 
>>>> most recent error say "artanis/server/epoll.scm:211:12: In procedure 
>>>> epoll-ctl:".
>>>> Jonathan
>>>>    On Thursday, February 20, 2020, 1:42:49 AM CST, Nala Ginrut 
>>>> <address@hidden> wrote:
>>>>
>>>>
>>>> Could you try the refix version?
>>>>
>>>> Best regards.
>>>>
>>>> Jaft writes:
>>>>
>>>>>  Hey, Nala.
>>>>> Unfortunately, no luck; I pulled the branch you mentioned and, after 
>>>>> building it, I see the changes you made installed but get the below error:
>>>>> ;;; note: source file /usr/bin/art;;;      newer than compiled 
>>>>> /home/pi/.cache/guile/ccache/2.2-LE-4-3.A/usr/bin/art.go;;; note: 
>>>>> auto-compilation is enabled, set GUILE_AUTO_COMPILE=0;;;      or pass the 
>>>>> --no-auto-compile argument to disable.;;; compiling /usr/bin/art;;; 
>>>>> compiled /home/pi/.cache/guile/ccache/2.2-LE-4-3.A/usr/bin/art.goLoading 
>>>>> conf/artanis.conf...done.Session with SIMPLE backend init done!Loading 
>>>>> models...Loading controllers...Loading restful API...Regenerating route 
>>>>> cache ...Server core: ragnarokhttp://127.0.0.1:1234Anytime you want to 
>>>>> quit just try Ctrl+C, thanks!Backtrace:          11 (apply-smob/1 
>>>>> #<catch-closure 4dcdf0>)In ice-9/boot-9.scm:    705:2 10 
>>>>> (call-with-prompt _ _ #<procedure default-prompt-handle…>)In 
>>>>> ice-9/eval.scm:    619:8  9 (_ #(#(#<directory (guile-user) 4f6910>)))In 
>>>>> /usr/bin/art:    42:12  8 (_ _ _)In artanis/commands/work.scm:    144:8  
>>>>> 7 (work . _)In artanis/server/ragnarok.scm:  630:10  6 
>>>>> (establish-http-gateway _)  450:27  5 (ragnarok-http-gateway-run _)    
>>>>> 420:6  4 (get-one-request-from-clients #<r6rs:record:ragnarok-p…> …)    
>>>>> 218:4  3 (fill-ready-queue-from-service _ #<r6rs:record:ragnarok…>)In 
>>>>> ice-9/boot-9.scm:  260:13  2 (for-each #<procedure 65c2d0 at 
>>>>> artanis/server/ragnaro…> …)In artanis/server/ragnarok.scm:  245:16  1 (_ 
>>>>> (0 . 1))In artanis/server/epoll.scm:  211:12  0 (epoll-ctl 15 _ 0 _ 
>>>>> #:check-exists? _)
>>>>> artanis/server/epoll.scm:211:12: In procedure epoll-ctl:Throw to key 
>>>>> `artanis-err' with args `(500 #<procedure epoll-ctl (epfd op fd event 
>>>>> #:key check-exists?)> "~a: ~a" (15 2 0 #f "Bad file descriptor") (9))'.
>>>>> Jonathan
>>>>>    On Wednesday, February 19, 2020, 4:12:15 AM CST, Nala Ginrut 
>>>>> <address@hidden> wrote:
>>>>>
>>>>>
>>>>> Hi Jaft!
>>>>> I found there's illogical bug in epoll module, please try 
>>>>> fix/epoll-exists-check branch:
>>>>> https://gitlab.com/NalaGinrut/artanis/-/commit/9d2338401cf422f7e22c4b5686d77e77a8a95fb4
>>>>>
>>>>> If it works then I'll merge ASAP.
>>>>>
>>>>> To someone who wants to learn about this bug, here's a brief
>>>>> description.
>>>>>
>>>>> When a new connection event comes in, the server core (Ragnarok) will
>>>>> check if it's already in epoll event set:
>>>>> - yes: Then there should be a existing task and we restore it. But if no 
>>>>> task, then we
>>>>> just drop it. This is the part which raised the error by illogical 
>>>>> checking.
>>>>> - no: Create a new task for this connection.
>>>>>
>>>>> Thanks for the report!
>>>>>
>>>>> Best regards.
>>>>>
>>>>> Jaft writes:
>>>>>
>>>>>>  Hey, Nala!
>>>>>> I've actually been running that each time, just to be safe.
>>>>>> But it's not an old codebase I'm trying out; I downloaded the most 
>>>>>> recent version of Artanis. ran "art create test", then ran "cd test", 
>>>>>> and then ran "art work --refresh" and keep having this exact behavior.
>>>>>> I didn't think this could be a cause of anything but, in case it's 
>>>>>> helpful, I am running it off of a Raspberry Pi, this time.
>>>>>> Jonathan    On Monday, February 17, 2020, 6:02:10 AM EST, Nala Ginrut 
>>>>>> <address@hidden> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Jaft!
>>>>>> If you upgrade Artanis then please run `art work --refresh` at least
>>>>>> once to make sure all your webapp code been recompiled with the latest
>>>>>> Artanis.
>>>>>>
>>>>>> You may take a look at the NOTE in the manual:
>>>>>> https://www.gnu.org/software/artanis/manual/manual.html#orga8bda39
>>>>>>
>>>>>> Best regards.
>>>>>>
>>>>>>
>>>>>> Jaft writes:
>>>>>>
>>>>>>>  Actually, it looks like the first call just hangs (sometimes, until it 
>>>>>>> eventually times out) and a second call is what produces the error.
>>>>>>> I know, in older versions, just generating a project and running it 
>>>>>>> would produce a page that says an index file should be provided but 
>>>>>>> that Artanis was up and running but I don't know if things have 
>>>>>>> changed, on that front, since last I tried out Artanis and I now need 
>>>>>>> to provide initial files for things to work out of the gate.
>>>>>>> Jonathan
>>>>>>>    On Saturday, February 15, 2020, 2:45:45 PM CST, Jaft 
>>>>>>> <address@hidden> wrote:
>>>>>>>
>>>>>>>  I had recently downloaded the most recent release of Artanis and was 
>>>>>>> just trying to get a generated project to run (no additional edits – 
>>>>>>> other than changing the port –, like enabling database usage or the 
>>>>>>> like).
>>>>>>> However, trying to hit the running project results in this error:
>>>>>>>
>>>>>>> Loading conf/artanis.conf...done.Session with SIMPLE backend init 
>>>>>>> done!Loading models...Loading controllers...Loading restful 
>>>>>>> API...Regenerating route cache ...Server core: 
>>>>>>> ragnarokhttp://127.0.0.1:1234Anytime you want to quit just try Ctrl+C, 
>>>>>>> thanks!Backtrace:          11 (apply-smob/1 #<catch-closure ff83d0>)In 
>>>>>>> ice-9/boot-9.scm:    705:2 10 (call-with-prompt _ _ #<procedure 
>>>>>>> default-prompt-handle…>)In ice-9/eval.scm:    619:8  9 (_ 
>>>>>>> #(#(#<directory (guile-user) 1052910>)))In /usr/bin/art:    42:12  8 (_ 
>>>>>>> _ _)In artanis/commands/work.scm:    144:8  7 (work . _)In 
>>>>>>> artanis/server/ragnarok.scm:  630:10  6 (establish-http-gateway _)  
>>>>>>> 450:27  5 (ragnarok-http-gateway-run _)    420:6  4 
>>>>>>> (get-one-request-from-clients #<r6rs:record:ragnarok-p…> …)    218:4  3 
>>>>>>> (fill-ready-queue-from-service _ #<r6rs:record:ragnarok…>)In 
>>>>>>> ice-9/boot-9.scm:  260:13  2 (for-each #<procedure 12f0060 at 
>>>>>>> artanis/server/ragnar…> …)In artanis/server/ragnarok.scm:  245:16  1 (_ 
>>>>>>> (0 . 1))In artanis/server/epoll.scm:    220:4  0 (exists-in-epoll? 15 0)
>>>>>>> artanis/server/epoll.scm:220:4: In procedure exists-in-epoll?:Throw to 
>>>>>>> key `artanis-err' with args `(500 #<procedure epoll-ctl (epfd op fd 
>>>>>>> event #:key check-exists?)> "~a: ~a" (15 2 0 #f "Bad file descriptor") 
>>>>>>> (9))'.
>>>>>>>
>>>>>>> I can't make out the cause so I thought I'd ask.
>>>>>>> Thank you for any help!
>>>>>>> Jonathan


--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]