LoginSignup
5
4

More than 5 years have passed since last update.

elasticsearch起動するとstack guardされてないですよ的なことを言われる

Posted at

こんな感じ

OpenJDK Client VM warning: You have loaded library /home/elasticsearch/elasticsearch-0.90.5/lib/sigar/libsigar-x86-linux.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.

言われた通りに

execstack -c lib/sigar/libsigar-x86-linux.so

で、

[elasticsearch@localhost elasticsearch-0.90.5]$ ./bin/elasticsearch -f
[2013-09-27 10:14:01,379][WARN ][bootstrap                ] jvm uses the client vm, make sure to run `java` with the server vm for best performance by adding `-server` to the command line
[2013-09-27 10:14:01,543][INFO ][node                     ] [Hamilton Slade] version[0.90.5], pid[8053], build[c8714e8/2013-09-17T12:50:20Z]
[2013-09-27 10:14:01,543][INFO ][node                     ] [Hamilton Slade] initializing ...
[2013-09-27 10:14:01,562][INFO ][plugins                  ] [Hamilton Slade] loaded [analysis-kuromoji], sites []
[2013-09-27 10:14:05,202][INFO ][node                     ] [Hamilton Slade] initialized
[2013-09-27 10:14:05,203][INFO ][node                     ] [Hamilton Slade] starting ...
[2013-09-27 10:14:05,420][INFO ][transport                ] [Hamilton Slade] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.100.2:9300]}
[2013-09-27 10:14:08,488][INFO ][cluster.service          ] [Hamilton Slade] new_master [Hamilton Slade][7nOVYzdYTw6pBl7G70S89A][inet[/192.168.100.2:9300]], reason: zen-disco-join (elected_as_master)
[2013-09-27 10:14:08,550][INFO ][discovery                ] [Hamilton Slade] elasticsearch/7nOVYzdYTw6pBl7G70S89A
[2013-09-27 10:14:08,587][INFO ][http                     ] [Hamilton Slade] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.100.2:9200]}
[2013-09-27 10:14:08,588][INFO ][node                     ] [Hamilton Slade] started
[2013-09-27 10:14:08,660][INFO ][gateway                  ] [Hamilton Slade] recovered [0] indices into cluster_state

今度は出ない。
これ何やねんというと、

execstack(8)                                                                System Manager's Manual                                                               execstack(8)

NAME
       execstack - tool to set, clear, or query executable stack flag of ELF binaries and shared libraries

SYNOPSIS
       execstack [OPTION...] [FILES]

DESCRIPTION
       execstack  is a program which sets, clears, or queries executable stack flag of ELF binaries and shared libraries.  Linux has in the past allowed execution of instruc‐
       tions on the stack and there are lots of binaries and shared libraries assuming this behaviour.  Furthermore, GCC trampoline code for e.g.  nested  functions  requires
       executable  stack  on  many  architectures.   To avoid breaking binaries and shared libraries which need executable stack, ELF binaries and shared libraries now can be
       marked as requiring executable stack or not requiring it.  This marking is done through the p_flags field in the PT_GNU_STACK program header entry.  If the marking  is
       missing,  kernel  or dynamic linker need to assume it might need executable stack.  The marking is done automatically by recent GCC versions (objects using trampolines
       on the stack are marked as requiring executable stack, all other newly built objects are marked as not requiring it) and linker collects these markings into marking of
       the  whole  binary  or  shared library.  The user can override this at assembly time (through --execstack or --noexecstack assembler options), at link time (through -z
       execstack or -z noexecstack linker options) and using the execstack tool also on an already linker binary or shared library.  This tool is especially useful for  third
       party shared libraries where it is known that they don't need executable stack or testing proves it.

OPTIONS
       -s --set-execstack
              Mark binary or shared library as requi

あーなるほどね、全然分かりません。

つまりこういうことでした。

5
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4