Giter Site home page Giter Site logo

bcrypt failure about colosimo HOT 12 OPEN

imperialwicket avatar imperialwicket commented on June 24, 2024
bcrypt failure

from colosimo.

Comments (12)

imperialwicket avatar imperialwicket commented on June 24, 2024

Thanks for opening this issue, I'll try to get an update in place soon. In the meantime, check the comments http://imperialwicket.com/colosimo-chicago-boss-postgresql-and-bcrypt for some discussion and a few links regarding this issue.

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

Yeah I looked at all of that and the google groups discussion.. still trying to figure out what all of it means..

from colosimo.

imperialwicket avatar imperialwicket commented on June 24, 2024

From the colosimo directory, does this happen for you:

Terminal:

$ ./init-dev

After ChicagoBoss startup output:

<Enter>
(colosimo@machine)2> bcrypt:hashpw("somePass",bcrypt:gen_salt()).
"$2a$12$WI7Tgxoj/fOrt.00XKwWNumvS0jkc./eB.wcRuyaSN1WrSdrw39fS"
(colosimo@machine)3>

Or do you see an error here?

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

Yeah, I do:

(colosimo@wulf)1> bcrypt:hashpw("somePass",bcrypt:gen_salt()).
** exception error: no match of right hand side value undefined
     in function  bcrypt:mechanism/0 (src/bcrypt.erl, line 15)
     in call from bcrypt:gen_salt/0 (src/bcrypt.erl, line 18)

However, if I run bcrypt:start(). I get some different things:

(colosimo@wulf)1> bcrypt:start().
ok
(colosimo@wulf)2> 
=PROGRESS REPORT==== 28-Nov-2012::19:53:20 ===
          supervisor: {local,bcrypt_sup}
             started: [{pid,<0.171.0>},
                       {name,bcrypt_nif_worker},
                       {mfargs,{bcrypt_nif_worker,start_link,[]}},
                       {restart_type,permanent},
                       {shutdown,4294967295},
                       {child_type,worker}]

=PROGRESS REPORT==== 28-Nov-2012::19:53:20 ===
         application: bcrypt
          started_at: colosimo@wulf

Then, running the hashpw again:

(colosimo@wulf)2> bcrypt:hashpw("somePass",bcrypt:gen_salt()).

=ERROR REPORT==== 28-Nov-2012::19:54:20 ===
** Generic server bcrypt_nif_worker terminating 
** Last message in was {hashpw,"somePass",
                               {ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}}
** When Server state == {state,12,<<>>}
** Reason for termination == 
** {function_clause,
       [{bcrypt_nif_worker,terminate,
            [{badarg,
                 [{bcrypt_nif,hashpw,
                      [<<>>,#Ref<0.0.0.5475>,<0.171.0>,"somePass",
                       {ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}],
                      []},
                  {bcrypt_nif_worker,handle_call,3,
                      [{file,"src/bcrypt_nif_worker.erl"},{line,42}]},
                  {gen_server,handle_msg,5,
                      [{file,"gen_server.erl"},{line,588}]},
                  {proc_lib,init_p_do_apply,3,
                      [{file,"proc_lib.erl"},{line,227}]}]},
             {state,12,<<>>}],
            [{file,"src/bcrypt_nif_worker.erl"},{line,34}]},
        {gen_server,terminate,6,[{file,"gen_server.erl"},{line,722}]},
        {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]}
** exception exit: {{function_clause,[{bcrypt_nif_worker,terminate,
                                                         [{badarg,[{bcrypt_nif,hashpw,
                                                                               [<<>>,#Ref<0.0.0.5475>,<0.171.0>,"somePass",
                                                                                {ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}],
                                                                               []},
                                                                   {bcrypt_nif_worker,handle_call,3,
                                                                                      [{file,"src/bcrypt_nif_worker.erl"},{line,42}]},
                                                                   {gen_server,handle_msg,5,
                                                                               [{file,"gen_server.erl"},{line,588}]},
                                                                   {proc_lib,init_p_do_apply,3,
                                                                             [{file,"proc_lib.erl"},{line,227}]}]},
                                                          {state,12,<<>>}],
                                                         [{file,"src/bcrypt_nif_worker.erl"},{line,34}]},
                                      {gen_server,terminate,6,
                                                  [{file,"gen_server.erl"},{line,722}]},
                                      {proc_lib,init_p_do_apply,3,
                                                [{file,"proc_lib.erl"},{line,227}]}]},
                    {gen_server,call,
                                [bcrypt_nif_worker,
                                 {hashpw,"somePass",{ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}},
                                 infinity]}}
     in function  gen_server:call/3 (gen_server.erl, line 188)

=CRASH REPORT==== 28-Nov-2012::19:54:20 ===
  crasher:
    initial call: bcrypt_nif_worker:init/1
    pid: <0.171.0>
    registered_name: bcrypt_nif_worker
    exception exit: {function_clause,
                        [{bcrypt_nif_worker,terminate,
                             [{badarg,
                                  [{bcrypt_nif,hashpw,
                                       [<<>>,#Ref<0.0.0.5475>,<0.171.0>,
                                        "somePass",
                                        {ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}],
                                       []},
                                   {bcrypt_nif_worker,handle_call,3,
                                       [{file,"src/bcrypt_nif_worker.erl"},
                                        {line,42}]},
                                   {gen_server,handle_msg,5,
                                       [{file,"gen_server.erl"},{line,588}]},
                                   {proc_lib,init_p_do_apply,3,
                                       [{file,"proc_lib.erl"},{line,227}]}]},
                              {state,12,<<>>}],
                             [{file,"src/bcrypt_nif_worker.erl"},{line,34}]},
                         {gen_server,terminate,6,
                             [{file,"gen_server.erl"},{line,722}]},
                         {proc_lib,init_p_do_apply,3,
                             [{file,"proc_lib.erl"},{line,227}]}]}
      in function  gen_server:terminate/6 (gen_server.erl, line 725)
    ancestors: [bcrypt_sup,<0.169.0>]
    messages: []
    links: [<0.170.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 987
    stack_size: 24
    reductions: 257
  neighbours:

=SUPERVISOR REPORT==== 28-Nov-2012::19:54:20 ===
     Supervisor: {local,bcrypt_sup}
     Context:    child_terminated
     Reason:     {function_clause,
                     [{bcrypt_nif_worker,terminate,
                          [{badarg,
                               [{bcrypt_nif,hashpw,
                                    [<<>>,#Ref<0.0.0.5475>,<0.171.0>,
                                     "somePass",
                                     {ok,"$2a$12$YyQJMsn.Cl51g3j3rHGZh."}],
                                    []},
                                {bcrypt_nif_worker,handle_call,3,
                                    [{file,"src/bcrypt_nif_worker.erl"},
                                     {line,42}]},
                                {gen_server,handle_msg,5,
                                    [{file,"gen_server.erl"},{line,588}]},
                                {proc_lib,init_p_do_apply,3,
                                    [{file,"proc_lib.erl"},{line,227}]}]},
                           {state,12,<<>>}],
                          [{file,"src/bcrypt_nif_worker.erl"},{line,34}]},
                      {gen_server,terminate,6,
                          [{file,"gen_server.erl"},{line,722}]},
                      {proc_lib,init_p_do_apply,3,
                          [{file,"proc_lib.erl"},{line,227}]}]}
     Offender:   [{pid,<0.171.0>},
                  {name,bcrypt_nif_worker},
                  {mfargs,{bcrypt_nif_worker,start_link,[]}},
                  {restart_type,permanent},
                  {shutdown,4294967295},
                  {child_type,worker}]


=PROGRESS REPORT==== 28-Nov-2012::19:54:20 ===
          supervisor: {local,bcrypt_sup}
             started: [{pid,<0.175.0>},
                       {name,bcrypt_nif_worker},
                       {mfargs,{bcrypt_nif_worker,start_link,[]}},
                       {restart_type,permanent},
                       {shutdown,4294967295},
                       {child_type,worker}]
(colosimo@wulf)3> 

Talk about verbose!...

from colosimo.

imperialwicket avatar imperialwicket commented on June 24, 2024

So wherever bcrypt is installed, it's not starting for ChicagoBoss. Also, you'll need to start both crypto and bcrypt:

crypto:start().
bcrypt:start().

Then those errors should go away.

A more fundamental test is just executing 'erl' to bring up the prompt, and trying the same thing. That will tell you if it's a user/environment error, or just a module loading issue for Erlang generically.

I'm also interested in whether or not you installed erlang from a package, or built it from source; and what OS (and architecture) you are using. I know there are a couple of oddities in the Ubuntu Erlang packages, and I'm wondering if they load modules/libs differently than a local ./configure && make && make install would handle them. I'll echo my earlier guess that it's a problem with universal packages and libs stored for 32 or 64 bit specifically.

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

Hmmm crypto:start(). responds with "already started." The rest is the same as before.

I installed erlang R15B02 with kerl onto Linux Mint 13:

$ uname -a
Linux wulf 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux)

I tried putting erlang-bcrypt into the ChicagoBoss/deps/ directory, but that didn't seem to accomplish anything in particular...

Also tried putting it in the colosimo.app.src file, thinking it might autostart (since crypto is in there)... nothing...

{application, colosimo, [
        {description, "My Awesome Web Framework"},
        {vsn, "0.0.1"},
        {modules, []},
        {registered, []},
        {applications, [kernel, stdlib, crypto, bcrypt, boss]},
        {env, []}
    ]}.

Clearly I need to do lots more reading about this before randomly trying things, hoping they'll work. : )

from colosimo.

imperialwicket avatar imperialwicket commented on June 24, 2024

Is crypto.beam in the same relative location as bcrypt.beam on your system?

[EDIT - 'bcrypt.beam' not 'erlang-bcrypt.beam']

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

It wasn't, because I moved it into the ChicagoBoss/deps folder, so I moved it back to .kerl/installs/r15b02/lib/. That didn't help. However, the comment at the end of your blog post almost worked. : ) I had to change some things to get it to go. I'll fork this and you can see the changes I made in a few minutes here...

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

This is my super-basic cobbling together of internet information solution: #2

It probably sucks. : )

from colosimo.

imperialwicket avatar imperialwicket commented on June 24, 2024

Thanks for figuring this out. I need to figure out how/where to merge this - as it's definitely an environment-specific update.

from colosimo.

wulftone avatar wulftone commented on June 24, 2024

Meaning you don't have to start bcrypt like this?

Does your bcrypt return something besides a tuple from bcrypt:hashpw()?

from colosimo.

imperialwicket avatar imperialwicket commented on June 24, 2024

No, I don't start bcrypt at all, it's installed with the rest of my core modules so that whenever I issue 'erl [args]', it loads.

I can call ./init.sh or ./init-dev.sh and the project cloned from master runs, registers, and logs in. But, this is on Debian 32bit, and with a locally built Erlang installation (I've also tested on Amazon Linux, 64bit - again with locally built Erlang).

There are a lot of good reasons for installing bcrypt as a dependency to your project, but in my mind, bcrypt is handy to have at the core level for Erlang. I'm pretty new to Erlang too, and I agree that much of this confusion has to do with loading modules in Erlang generally and the best way to transition this to a CB project.

from colosimo.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.