Re: Able to crash mon with invalid command

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

 



On 02/21/2013 05:33 PM, Joao Eduardo Luis wrote:
On 02/20/2013 06:39 PM, Travis Rhoden wrote:
Actually, looking at the source code, that is a valid command -- and the
monitor correctly responded that it needed either "exit" or "enter"
after the command.  I don't know why it segfaulted, though.

By far the weirdest segfault I've seen in a while.

Will look into this and report back.

Thanks!

   -Joao

Oh, not weird at all. We're trying to read the next position in the array without even checking if it exists. I'll have a fix in a minute or so.

Thanks again!

  -Joao



On Wed, Feb 20, 2013 at 1:31 PM, Travis Rhoden <trhoden@xxxxxxxxx
<mailto:trhoden@xxxxxxxxx>> wrote:

    I typed in the following command and it crashed one of my monitors:

    # ceph quorum
    2013-02-20 18:22:59.327916 7f908186f700  0 monclient: hunting for
    new mon
    unknown quorum subcommand; use exit or enter

    # ceph -s
        health HEALTH_WARN 1 mons down, quorum 0,1,3,4 a,b,d,e

    Log from ceph-mon.c.log:

         -1> 2013-02-20 18:22:57.594190 7f92d84db700  0 mon.c@2(peon) e1
    handle_command mon_command(quorum v 0) v1
          0> 2013-02-20 18:22:57.721764 7f92d84db700 -1 *** Caught
    signal (Segmentation fault) **
      in thread 7f92d84db700

      ceph version 0.56.3 (6eb7e15a4783b122e9b0c85ea9ba064145958aa5)
      1: /usr/bin/ceph-mon() [0x5379da]
      2: (()+0xfcb0) [0x7f92dd8cecb0]
      3: (std::string::compare(char const*) const+0x2c) [0x7f92dcfe382c]
      4: (bool std::operator==<char, std::char_traits<char>,
    std::allocator<char> >(std::basic_string<char,
    std::char_traits<char>, std::allocator<char> > const&, char
    const*)+0x9) [0x488919]
      5: (Monitor::handle_command(MMonCommand*)+0x13a8) [0x4741e8]
      6: (Monitor::_ms_dispatch(Message*)+0x103b) [0x484bcb]
      7: (Monitor::ms_dispatch(Message*)+0x32) [0x4945c2]
      8: (DispatchQueue::entry()+0x349) [0x63d009]
      9: (DispatchQueue::DispatchThread::entry()+0xd) [0x5d67bd]
      10: (()+0x7e9a) [0x7f92dd8c6e9a]
      11: (clone()+0x6d) [0x7f92dc767cbd]
      NOTE: a copy of the executable, or `objdump -rdS <executable>` is
    needed to interpret this.

    I had meant to do "ceph quorum_status".  doh.
    Version is 0.56.3 all around

      - Travis




_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux