brianmario / mysql2

A modern, simple and very fast Mysql library for Ruby - binding to libmysql
http://github.com/brianmario/mysql2
MIT License
2.25k stars 550 forks source link

login-path capability? #941

Open ericdp opened 6 years ago

ericdp commented 6 years ago

Is the use of login-path on the roadmap for a future release? Unless you have a way of using some sort of encrypted passwords on a linux system?

ericdp commented 6 years ago
irb(main):001:0> require 'mysql2'
=> true
irb(main):002:0> d = Mysql::Client.new( :default_file => '~/.mylogin.cnf', :default_group => 'qa_dw' )
NameError: uninitialized constant Mysql
    from (irb):2
    from /usr/bin/irb:11:in `<main>'
irb(main):003:0> d = Mysql2::Client.new( :default_file => '~/.mylogin.cnf', :default_group => 'qa_dw' )
error: Found option without preceding group in config file: /home/epeterson/.mylogin.cnf at line: 2
Fatal error in defaults handling. Program aborted
/var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:89: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux-gnu]

-- Control frame information -----------------------------------------------
c:0022 p:---- s:0124 e:000123 CFUNC  :connect
c:0021 p:0677 s:0113 e:000112 METHOD /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:89 [FINISH]
c:0020 p:---- s:0100 e:000099 CFUNC  :new
c:0019 p:0018 s:0095 e:000094 EVAL   (irb):3 [FINISH]
c:0018 p:---- s:0092 e:000091 CFUNC  :eval
c:0017 p:0025 s:0084 e:000083 METHOD /usr/lib/ruby/2.4.0/irb/workspace.rb:87
c:0016 p:0027 s:0076 e:000074 METHOD /usr/lib/ruby/2.4.0/irb/context.rb:381
c:0015 p:0024 s:0069 e:000068 BLOCK  /usr/lib/ruby/2.4.0/irb.rb:493
c:0014 p:0041 s:0060 e:000059 METHOD /usr/lib/ruby/2.4.0/irb.rb:627
c:0013 p:0011 s:0054 e:000053 BLOCK  /usr/lib/ruby/2.4.0/irb.rb:490
c:0012 p:0128 s:0049 e:000048 BLOCK  /usr/lib/ruby/2.4.0/irb/ruby-lex.rb:246 [FINISH]
c:0011 p:---- s:0045 e:000044 CFUNC  :loop
c:0010 p:0009 s:0041 e:000040 BLOCK  /usr/lib/ruby/2.4.0/irb/ruby-lex.rb:232 [FINISH]
c:0009 p:---- s:0038 e:000037 CFUNC  :catch
c:0008 p:0018 s:0033 e:000032 METHOD /usr/lib/ruby/2.4.0/irb/ruby-lex.rb:231
c:0007 p:0037 s:0029 E:001b20 METHOD /usr/lib/ruby/2.4.0/irb.rb:489
c:0006 p:0008 s:0025 e:000024 BLOCK  /usr/lib/ruby/2.4.0/irb.rb:430 [FINISH]
c:0005 p:---- s:0022 e:000021 CFUNC  :catch
c:0004 p:0075 s:0017 E:002558 METHOD /usr/lib/ruby/2.4.0/irb.rb:429
c:0003 p:0118 s:0012 e:000011 METHOD /usr/lib/ruby/2.4.0/irb.rb:385
c:0002 p:0023 s:0006 e:000005 EVAL   /usr/bin/irb:11 [FINISH]
c:0001 p:0000 s:0003 E:0006f0 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/bin/irb:11:in `<main>'
/usr/lib/ruby/2.4.0/irb.rb:385:in `start'
/usr/lib/ruby/2.4.0/irb.rb:429:in `run'
/usr/lib/ruby/2.4.0/irb.rb:429:in `catch'
/usr/lib/ruby/2.4.0/irb.rb:430:in `block in run'
/usr/lib/ruby/2.4.0/irb.rb:489:in `eval_input'
/usr/lib/ruby/2.4.0/irb/ruby-lex.rb:231:in `each_top_level_statement'
/usr/lib/ruby/2.4.0/irb/ruby-lex.rb:231:in `catch'
/usr/lib/ruby/2.4.0/irb/ruby-lex.rb:232:in `block in each_top_level_statement'
/usr/lib/ruby/2.4.0/irb/ruby-lex.rb:232:in `loop'
/usr/lib/ruby/2.4.0/irb/ruby-lex.rb:246:in `block (2 levels) in each_top_level_statement'
/usr/lib/ruby/2.4.0/irb.rb:490:in `block in eval_input'
/usr/lib/ruby/2.4.0/irb.rb:627:in `signal_status'
/usr/lib/ruby/2.4.0/irb.rb:493:in `block (2 levels) in eval_input'
/usr/lib/ruby/2.4.0/irb/context.rb:381:in `evaluate'
/usr/lib/ruby/2.4.0/irb/workspace.rb:87:in `evaluate'
/usr/lib/ruby/2.4.0/irb/workspace.rb:87:in `eval'
(irb):3:in `irb_binding'
(irb):3:in `new'
/var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:89:in `initialize'
/var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:89:in `connect'

-- Machine register context ------------------------------------------------
 RIP: 0x00007f2b058c3db6 RBP: 0x00007f2b05d40388 RSP: 0x00007fff5e87ca18
 RAX: 0x6f7272652f382d46 RBX: 0x00000000028ab620 RCX: 0x0000000000000000
 RDX: 0x0000000001e13380 RDI: 0x00000000028adf10 RSI: 0x0000000000000000
  R8: 0x0000000000000000  R9: 0x0000000000000000 R10: 0x00007f2b07dfce40
 R11: 0x0000000000000007 R12: 0x0000000000000000 R13: 0x0000000000000000
 R14: 0x0000000000000000 R15: 0x00000000028ab620 EFL: 0x0000000000010246

-- C level backtrace information -------------------------------------------
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082e0f65]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082e119c]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b081bbb84]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b0827619e]
/lib/x86_64-linux-gnu/libc.so.6 [0x7f2b07da9cb0]
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18(my_net_set_read_timeout+0x16) [0x7f2b058c3db6]
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18(my_net_local_init+0x21) [0x7f2b058b8f71]
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18(my_net_init+0x12) [0x7f2b058c2f12]
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18(mysql_real_connect+0x139) [0x7f2b058bf0c9]
/var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so(nogvl_connect+0x31) [0x7f2b05dc8fa1] client.c:210
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082a5e55]
/var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so(rb_connect+0x12d) [0x7f2b05dc9ddd] client.c:433
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c0816]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7553]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ce3d9]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7c2c]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(rb_funcallv+0x16d) [0x7f2b082db19d]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(rb_class_new_instance+0x21) [0x7f2b08212931]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7553]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ce3d9]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d35c0]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d386f]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ce3d9]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d3f7f]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(rb_rescue2+0xd2) [0x7f2b081c1322]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7553]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ceb0e]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d420e]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9c83]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(rb_catch_obj+0x19) [0x7f2b082c9d59]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9dfe]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7553]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ceb0e]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d420e]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9c83]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(rb_catch_obj+0x19) [0x7f2b082c9d59]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9dfe]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082c9260]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d7553]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082ceb0e]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b082d2aa3]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4 [0x7f2b081bee7d]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(ruby_exec_node+0x1d) [0x7f2b081c0b0d]
/usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4(ruby_run_node+0x1e) [0x7f2b081c2a9e]
irb [0x40086b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f2b07d94f45] libc-start.c:287
irb [0x400899]

-- Other runtime information -----------------------------------------------

* Loaded script: irb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/encdb.so
    5 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/trans/transdb.so
    6 /usr/lib/ruby/2.4.0/unicode_normalize.rb
    7 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/rbconfig.rb
    8 /usr/lib/ruby/2.4.0/rubygems/compatibility.rb
    9 /usr/lib/ruby/2.4.0/rubygems/defaults.rb
   10 /usr/lib/ruby/2.4.0/rubygems/deprecate.rb
   11 /usr/lib/ruby/2.4.0/rubygems/errors.rb
   12 /usr/lib/ruby/2.4.0/rubygems/version.rb
   13 /usr/lib/ruby/2.4.0/rubygems/requirement.rb
   14 /usr/lib/ruby/2.4.0/rubygems/platform.rb
   15 /usr/lib/ruby/2.4.0/rubygems/basic_specification.rb
   16 /usr/lib/ruby/2.4.0/rubygems/stub_specification.rb
   17 /usr/lib/ruby/2.4.0/rubygems/util/list.rb
   18 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/stringio.so
   19 /usr/lib/ruby/2.4.0/rubygems/specification.rb
   20 /usr/lib/ruby/2.4.0/rubygems/exceptions.rb
   21 /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
   22 /usr/lib/ruby/2.4.0/rubygems/dependency.rb
   23 /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_gem.rb
   24 /usr/lib/ruby/2.4.0/monitor.rb
   25 /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb
   26 /usr/lib/ruby/2.4.0/rubygems.rb
   27 /usr/lib/ruby/2.4.0/rubygems/path_support.rb
   28 /usr/lib/ruby/2.4.0/e2mmap.rb
   29 /usr/lib/ruby/2.4.0/irb/init.rb
   30 /usr/lib/ruby/2.4.0/irb/workspace.rb
   31 /usr/lib/ruby/2.4.0/irb/inspector.rb
   32 /usr/lib/ruby/2.4.0/irb/output-method.rb
   33 /usr/lib/ruby/2.4.0/irb/context.rb
   34 /usr/lib/ruby/2.4.0/irb/extend-command.rb
   35 /usr/lib/ruby/2.4.0/irb/notifier.rb
   36 /usr/lib/ruby/2.4.0/irb/slex.rb
   37 /usr/lib/ruby/2.4.0/irb/ruby-token.rb
   38 /usr/lib/ruby/2.4.0/irb/ruby-lex.rb
   39 /usr/lib/ruby/2.4.0/irb/src_encoding.rb
   40 /usr/lib/ruby/2.4.0/irb/magic-file.rb
   41 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/readline.so
   42 /usr/lib/ruby/2.4.0/irb/input-method.rb
   43 /usr/lib/ruby/2.4.0/irb/locale.rb
   44 /usr/lib/ruby/2.4.0/irb.rb
   45 /usr/lib/x86_64-linux-gnu/ruby/2.4.0/date_core.so
   46 /usr/lib/ruby/2.4.0/date.rb
   47 /var/lib/gems/2.4.0/gems/bigdecimal-1.3.4/lib/bigdecimal.so
   48 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/version.rb
   49 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/error.rb
   50 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so
   51 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/result.rb
   52 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/client.rb
   53 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/field.rb
   54 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/statement.rb
   55 /usr/lib/ruby/2.4.0/timeout.rb
   56 /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2.rb

* Process memory map:

00400000-00401000 r-xp 00000000 fc:00 930091                             /usr/bin/ruby2.4
00600000-00601000 r--p 00000000 fc:00 930091                             /usr/bin/ruby2.4
00601000-00602000 rw-p 00001000 fc:00 930091                             /usr/bin/ruby2.4
024a6000-0290d000 rw-p 00000000 00:00 0                                  [heap]
7f2aff77c000-7f2b00000000 r--s 00000000 fc:00 1310879                    /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.19.so
7f2b00000000-7f2b00021000 rw-p 00000000 00:00 0
7f2b00021000-7f2b04000000 ---p 00000000 00:00 0
7f2b042d0000-7f2b04605000 r--s 00000000 fc:00 918561                     /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
7f2b04605000-7f2b047cb000 r--s 00000000 fc:00 393494                     /lib/x86_64-linux-gnu/libc-2.19.so
7f2b047cb000-7f2b04a4f000 r--s 00000000 fc:00 930083                     /usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4.3
7f2b04a4f000-7f2b04a59000 r-xp 00000000 fc:00 393244                     /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f2b04a59000-7f2b04c58000 ---p 0000a000 fc:00 393244                     /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f2b04c58000-7f2b04c59000 r--p 00009000 fc:00 393244                     /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f2b04c59000-7f2b04c5a000 rw-p 0000a000 fc:00 393244                     /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f2b04c5a000-7f2b04c70000 r-xp 00000000 fc:00 393227                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2b04c70000-7f2b04e6f000 ---p 00016000 fc:00 393227                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2b04e6f000-7f2b04e70000 rw-p 00015000 fc:00 393227                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2b04e70000-7f2b04e71000 ---p 00000000 00:00 0
7f2b04e71000-7f2b05671000 rw-p 00000000 00:00 0
7f2b05671000-7f2b05689000 r-xp 00000000 fc:00 393503                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2b05689000-7f2b05888000 ---p 00018000 fc:00 393503                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2b05888000-7f2b05889000 r--p 00017000 fc:00 393503                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2b05889000-7f2b0588a000 rw-p 00018000 fc:00 393503                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2b0588a000-7f2b05b3b000 r-xp 00000000 fc:00 918561                     /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
7f2b05b3b000-7f2b05d3b000 ---p 002b1000 fc:00 918561                     /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
7f2b05d3b000-7f2b05d40000 r--p 002b1000 fc:00 918561                     /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
7f2b05d40000-7f2b05dbe000 rw-p 002b6000 fc:00 918561                     /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
7f2b05dbe000-7f2b05dc3000 rw-p 00000000 00:00 0
7f2b05dc3000-7f2b05dd2000 r-xp 00000000 fc:00 30936272                   /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so
7f2b05dd2000-7f2b05fd2000 ---p 0000f000 fc:00 30936272                   /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so
7f2b05fd2000-7f2b05fd3000 r--p 0000f000 fc:00 30936272                   /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so
7f2b05fd3000-7f2b05fd4000 rw-p 00010000 fc:00 30936272                   /var/lib/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.so
7f2b05fd4000-7f2b05fe5000 r-xp 00000000 fc:00 30809177                   /var/lib/gems/2.4.0/gems/bigdecimal-1.3.4/lib/bigdecimal.so
7f2b05fe5000-7f2b061e4000 ---p 00011000 fc:00 30809177                   /var/lib/gems/2.4.0/gems/bigdecimal-1.3.4/lib/bigdecimal.so
7f2b061e4000-7f2b061e5000 r--p 00010000 fc:00 30809177                   /var/lib/gems/2.4.0/gems/bigdecimal-1.3.4/lib/bigdecimal.so
7f2b061e5000-7f2b061e6000 rw-p 00011000 fc:00 30809177                   /var/lib/gems/2.4.0/gems/bigdecimal-1.3.4/lib/bigdecimal.so
7f2b061e6000-7f2b06214000 r-xp 00000000 fc:00 33295762                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/date_core.so
7f2b06214000-7f2b06413000 ---p 0002e000 fc:00 33295762                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/date_core.so
7f2b06413000-7f2b06414000 r--p 0002d000 fc:00 33295762                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/date_core.so
7f2b06414000-7f2b06415000 rw-p 0002e000 fc:00 33295762                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/date_core.so
7f2b06415000-7f2b06416000 rw-p 00000000 00:00 0
7f2b06416000-7f2b0643b000 r-xp 00000000 fc:00 393493                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f2b0643b000-7f2b0663a000 ---p 00025000 fc:00 393493                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f2b0663a000-7f2b0663e000 r--p 00024000 fc:00 393493                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f2b0663e000-7f2b0663f000 rw-p 00028000 fc:00 393493                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f2b0663f000-7f2b0667c000 r-xp 00000000 fc:00 393478                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7f2b0667c000-7f2b0687c000 ---p 0003d000 fc:00 393478                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7f2b0687c000-7f2b0687e000 r--p 0003d000 fc:00 393478                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7f2b0687e000-7f2b06884000 rw-p 0003f000 fc:00 393478                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7f2b06884000-7f2b06885000 rw-p 00000000 00:00 0
7f2b06885000-7f2b0688c000 r-xp 00000000 fc:00 33295846                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/readline.so
7f2b0688c000-7f2b06a8c000 ---p 00007000 fc:00 33295846                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/readline.so
7f2b06a8c000-7f2b06a8d000 r--p 00007000 fc:00 33295846                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/readline.so
7f2b06a8d000-7f2b06a8e000 rw-p 00008000 fc:00 33295846                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/readline.so
7f2b06a8e000-7f2b06a95000 r-xp 00000000 fc:00 33295753                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/stringio.so
7f2b06a95000-7f2b06c94000 ---p 00007000 fc:00 33295753                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/stringio.so
7f2b06c94000-7f2b06c95000 r--p 00006000 fc:00 33295753                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/stringio.so
7f2b06c95000-7f2b06c96000 rw-p 00007000 fc:00 33295753                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/stringio.so
7f2b06c96000-7f2b06c98000 r-xp 00000000 fc:00 33295795                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/trans/transdb.so
7f2b06c98000-7f2b06e98000 ---p 00002000 fc:00 33295795                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/trans/transdb.so
7f2b06e98000-7f2b06e99000 r--p 00002000 fc:00 33295795                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/trans/transdb.so
7f2b06e99000-7f2b06e9a000 rw-p 00003000 fc:00 33295795                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/trans/transdb.so
7f2b06e9a000-7f2b06e9c000 r-xp 00000000 fc:00 33295782                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/encdb.so
7f2b06e9c000-7f2b0709b000 ---p 00002000 fc:00 33295782                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/encdb.so
7f2b0709b000-7f2b0709c000 r--p 00001000 fc:00 33295782                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/encdb.so
7f2b0709c000-7f2b0709d000 rw-p 00002000 fc:00 33295782                   /usr/lib/x86_64-linux-gnu/ruby/2.4.0/enc/encdb.so
7f2b0709d000-7f2b0719e000 rw-p 00000000 00:00 0
7f2b0719e000-7f2b072a3000 r-xp 00000000 fc:00 393355                     /lib/x86_64-linux-gnu/libm-2.19.so
7f2b072a3000-7f2b074a2000 ---p 00105000 fc:00 393355                     /lib/x86_64-linux-gnu/libm-2.19.so
7f2b074a2000-7f2b074a3000 r--p 00104000 fc:00 393355                     /lib/x86_64-linux-gnu/libm-2.19.so
7f2b074a3000-7f2b074a4000 rw-p 00105000 fc:00 393355                     /lib/x86_64-linux-gnu/libm-2.19.so
7f2b074a4000-7f2b074ad000 r-xp 00000000 fc:00 393352                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f2b074ad000-7f2b076ad000 ---p 00009000 fc:00 393352                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f2b076ad000-7f2b076ae000 r--p 00009000 fc:00 393352                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f2b076ae000-7f2b076af000 rw-p 0000a000 fc:00 393352                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f2b076af000-7f2b076dd000 rw-p 00000000 00:00 0
7f2b076dd000-7f2b076e0000 r-xp 00000000 fc:00 393380                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f2b076e0000-7f2b078df000 ---p 00003000 fc:00 393380                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f2b078df000-7f2b078e0000 r--p 00002000 fc:00 393380                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f2b078e0000-7f2b078e1000 rw-p 00003000 fc:00 393380                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f2b078e1000-7f2b0794d000 r-xp 00000000 fc:00 932450                     /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f2b0794d000-7f2b07b4c000 ---p 0006c000 fc:00 932450                     /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f2b07b4c000-7f2b07b4d000 r--p 0006b000 fc:00 932450                     /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f2b07b4d000-7f2b07b55000 rw-p 0006c000 fc:00 932450                     /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f2b07b55000-7f2b07b6e000 r-xp 00000000 fc:00 393362                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f2b07b6e000-7f2b07d6d000 ---p 00019000 fc:00 393362                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f2b07d6d000-7f2b07d6e000 r--p 00018000 fc:00 393362                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f2b07d6e000-7f2b07d6f000 rw-p 00019000 fc:00 393362                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f2b07d6f000-7f2b07d73000 rw-p 00000000 00:00 0
7f2b07d73000-7f2b07f31000 r-xp 00000000 fc:00 393494                     /lib/x86_64-linux-gnu/libc-2.19.so
7f2b07f31000-7f2b08131000 ---p 001be000 fc:00 393494                     /lib/x86_64-linux-gnu/libc-2.19.so
7f2b08131000-7f2b08135000 r--p 001be000 fc:00 393494                     /lib/x86_64-linux-gnu/libc-2.19.so
7f2b08135000-7f2b08137000 rw-p 001c2000 fc:00 393494                     /lib/x86_64-linux-gnu/libc-2.19.so
7f2b08137000-7f2b0813c000 rw-p 00000000 00:00 0
7f2b0813c000-7f2b083b8000 r-xp 00000000 fc:00 930083                     /usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4.3
7f2b083b8000-7f2b085b7000 ---p 0027c000 fc:00 930083                     /usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4.3
7f2b085b7000-7f2b085bd000 r--p 0027b000 fc:00 930083                     /usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4.3
7f2b085bd000-7f2b085be000 rw-p 00281000 fc:00 930083                     /usr/lib/x86_64-linux-gnu/libruby-2.4.so.2.4.3
7f2b085be000-7f2b085cf000 rw-p 00000000 00:00 0
7f2b085cf000-7f2b085f2000 r-xp 00000000 fc:00 393359                     /lib/x86_64-linux-gnu/ld-2.19.so
7f2b0861f000-7f2b08626000 r--s 00000000 fc:00 931500                     /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f2b08626000-7f2b08657000 rw-p 00000000 00:00 0
7f2b08657000-7f2b087e0000 r--p 00000000 fc:00 922912                     /usr/lib/locale/locale-archive
7f2b087e0000-7f2b087e6000 rw-p 00000000 00:00 0
7f2b087e8000-7f2b087e9000 rw-p 00000000 00:00 0
7f2b087e9000-7f2b087eb000 r--s 00000000 fc:00 930091                     /usr/bin/ruby2.4
7f2b087eb000-7f2b087ed000 rw-p 00000000 00:00 0
7f2b087ed000-7f2b087ee000 ---p 00000000 00:00 0
7f2b087ee000-7f2b087f1000 rw-p 00000000 00:00 0                          [stack:26133]
7f2b087f1000-7f2b087f2000 r--p 00022000 fc:00 393359                     /lib/x86_64-linux-gnu/ld-2.19.so
7f2b087f2000-7f2b087f3000 rw-p 00023000 fc:00 393359                     /lib/x86_64-linux-gnu/ld-2.19.so
7f2b087f3000-7f2b087f4000 rw-p 00000000 00:00 0
7fff5e083000-7fff5e882000 rw-p 00000000 00:00 0
7fff5e908000-7fff5e90a000 r--p 00000000 00:00 0                          [vvar]
7fff5e90a000-7fff5e90c000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted (core dumped)

[edited to add triple-backticks]

sodabrew commented 6 years ago

I'm not familiar with the login-path, can you link to documentation?

This crash doesn't look good! What versions of things are you using, just so I can begin narrowing down what might be happening?

irb(main):003:0> d = Mysql2::Client.new( :default_file => '~/.mylogin.cnf', :default_group => 'qa_dw' )
error: Found option without preceding group in config file: /home/epeterson/.mylogin.cnf at line: 2
Fatal error in defaults handling. Program aborted
ericdp commented 6 years ago

Here are the step I do to configure and use login-path with mysql command line. Looks like MySQL2 gem doesn't use this method.

-- check to see able to connect to DB Instance
mysql -u root -p -h <hostname>  mysql --prompt "(\u@\h) \D [\d]> "

-- create password login
mysql_config_editor --verbose set --login-path=<short name> --host  <hostname>  --user=root --password

-- to see what is saved, password is encrypted and not viewable
mysql_config_editor --verbose print --all

-- create alias in .bashrc
alias <alias>='mysql --login-path=<short name> mysql --prompt "(\u@\h) \D [\d]> 

[edited to add triple-backticks]

sodabrew commented 6 years ago

According do https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysql-utils-intro-connspec-mylogin.cnf.html you can write the login-path to a config file, and then I think you can use default_file as above. Can you tell me more about the versions of things you are using so that I can begin to narrow down the crash?

ericdp commented 6 years ago

yes, the above doe does create .mylogin.cnf file which is only readable through mysql_config_editor.

$ uname -a
Linux sa1 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

-- # use alias created above
$qa1root
...
[mysql]> SELECT @@aurora_server_id, @@aurora_version, VERSION(), NOW();
+--------------------+------------------+-----------+---------------------+
| @@aurora_server_id | @@aurora_version | VERSION() | NOW()               |
+--------------------+------------------+-----------+---------------------+
| db1-test           | 1.16             | 5.6.10    | 2018-02-26 19:08:53 |
+--------------------+------------------+-----------+---------------------+

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.6.14
  - RUBY VERSION: 2.4.3 (2017-12-14 patchlevel 205) [x86_64-linux-gnu]
  - INSTALLATION DIRECTORY: /var/lib/gems/2.4.0
  - USER INSTALLATION DIRECTORY: /home/epeterson/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: /usr/bin/ruby2.4
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /home/epeterson/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/2.4.0
     - /home/epeterson/.gem/ruby/2.4.0
     - /usr/share/rubygems-integration/2.4.0
     - /usr/share/rubygems-integration/all
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
     - /usr/lib/jvm/java-8-oracle/bin
     - /usr/lib/jvm/java-8-oracle/db/bin
     - /usr/lib/jvm/java-8-oracle/jre/bin
     - /home/epeterson/bin

[edited to add triple-backticks]

sodabrew commented 6 years ago

Oh cool, that's AWS Aurora on the server side? What's your client library version?

ericdp commented 6 years ago

all v.5.6. client and server versions

sodabrew commented 6 years ago

I went on a long hunt through MySQL code to figure out where this is implemented, and I just couldn't find what was different about login-path vs. the default-file. I'll find some time in the future to look again, but I'm stuck on not understanding what APIs to use to get this functionality.

inedray commented 3 years ago

Seeing this same issue with libmysqlclient.so version 5.7.32 - some users get the error message, some do not. The actual mysql client is able to authenticate/connect using same .mylogin.cnf

Storing login information in clear-text in ~/.my.cnf works for all users, the the issue may lie in decrypting the .mylogin.cnf contents.