Hello, I just wanted to take a look to this project and I got this error trying to sign up
I am using argon2 20190702-3
from the archlinux repositories and racket 8.2 CS
I have no idea how to debug this, what instruction is illegal?
but is it using the argon2 shared library from the os? (yes, it uses Places https://docs.racket-lang.org/reference/places.html)
Anyway, I see that argon should be one of the hasher available https://koyoweb.org/password-hashing/index.html
Is there a wishlist of other hasher?
maybe a pure racket implementation should be the perfect fallback, I see that https://pkgs.racket-lang.org/package/crypto-lib have various kdf implementations, such as argon2id, so if the koyo user will set the same parameters of the current implementation there will be no need for a rehashing migration
but does crypto-lib use the shared library from the os?
these are the default parameters, but can be configured, (where? I dont't see them in koyo/config and in proj/config, oh, ok, dynamic.rkt oh wow #:user config:db-username
is beautiful there)
;; ;; ;; from koyo/hasher/argon2id.rkt
#:parallelism [parallelism (processor-count)]
#:iterations [iterations 256]
#:memory [memory 2048]))
;; ;; ;; ;; ;; ;; overwritten by the configuration in dynamic.rkt to use always only 2 (threads?)
[hasher (make-argon2id-hasher-factory
#:parallelism 2
#:iterations 256
#:memory 2048)]
hey but wait, in koyo/hasher/argon2id-place.rkt there is crypto/argon2
required!
how is it used? why it uses places then?
it uses pwhash and pwhash-verify, but why are them tied to a place channel? is it a security measure? spawning a new racket VM just for that? it's the same process anyway. I can't profile it right now, it waits undefinitely and no answer is given to the client
uhm...
so, (exn-message e)
is illegal instruction. Some debugging context lost
oh, now I got what illegal instruction is related to, it means at hardware level, it's a racket bug!?
ok, what can I do now? should I use valgrind? I don't see any output after the server starts and after the place starts it hangs (launched with valgrind raco chief start
i see memcheck and then the server logs)
there are no issues with memory then I suppose
what am I trying to fix then?
by looking at similar issues in the racket github, only two of them seem related (but now even so close) to this and are tagged as 'unexplained
is it debuggable with gdb? what's gdbdump racket package? is there a debug helper for such situations? I'm pretty stuck now
;; lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
Model name: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
Thank you for reading