<p>์ปค๋ฐ‹ 66fd3303์—์„œ ๋นŒ๋“œ๋œ collectd๊ฐ€ SIGSEGV์™€ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.</p>

์— ๋งŒ๋“  2017๋…„ 10์›” 25์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: collectd/collectd

  • ์ˆ˜์ง‘ ๋ฒ„์ „:
    66fd3303352c526255ab4bde256361244e26b259

  • ์šด์˜ ์ฒด์ œ/๋ฐฐํฌ:
    16.04.1-Ubuntu, kolla-ansible์— ์˜ํ•ด ๋ฐฐํฌ๋œ Openstack

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

Collectd ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

์ถฉ๋Œ๋กœ ์ธํ•ด ์ˆ˜์ง‘๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•ญ์ƒ ๋‹ค์‹œ ์‹œ์ž‘๋จ

collectd๋ฅผ ์ด์ „ ์ปค๋ฐ‹ ID 1b10ab706f8b70ce2f086e59a54cc09d671ad989๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•˜๋ฉด ๋‹ค์‹œ ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„

  • collectd ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ
  • kolla-ansible๋กœ collectd ๋ฐฐํฌ
  • dmesg ์ฐธ์กฐ
Bug Pending contributor action

๋ชจ๋“  10 ๋Œ“๊ธ€

@jiriproX๋ฅผ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! 1b10ab7..66fd330 ๋Š” 203๊ฐœ์˜ ์ปค๋ฐ‹ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. git bisect ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๋˜ํ•œ ์Šคํƒ ์ถ”์ ์€ ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์šฐ๋ฆฌ ์œ„ํ‚ค์—๋Š” ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,
โ€”์˜ฅํ† 

... ๋˜ํ•œ ๊ตฌ์„ฑ๋„ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FQDNLookup false

LoadPlugin logfile
<Plugin logfile>
        LogLevel info
        File "/var/log/kolla/collectd/collectd.log"
        Timestamp true
        PrintSeverity true
</Plugin>

LoadPlugin cpu
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin hugepages

LoadPlugin csv
<Plugin csv>
   DataDir "/var/log/kolla/collectd/csv"
   StoreRates false
</Plugin>

LoadPlugin virt
<Plugin virt>
    Connection "qemu:///system"
    RefreshInterval 60
    HostnameFormat uuid
</Plugin>

<LoadPlugin ovs_events>
    Interval 1
</LoadPlugin>

<Plugin "ovs_events">
    Port 6640
    Socket "/var/run/openvswitch/db.sock"
#    Interfaces "br0" "veth0"
    SendNotification false
    DispatchValues true
</Plugin>

<LoadPlugin ovs_stats>
    Interval 1
</LoadPlugin>

<Plugin ovs_stats>
    Port "6640"
    Address "127.0.0.1"
    Socket "/var/run/openvswitch/db.sock"
#    Bridges "br0" "br_ext"
</Plugin>

<LoadPlugin python>
    Globals true
</LoadPlugin>
<Plugin python>
  #ModulePath "/collectd-gnocchi-plugin"
  #LogTraces true
  #Interactive false
  Import "collectd_gnocchi"
  <Module collectd_gnocchi>
     ### Keystone authentication
     # User_Id admin
     # Project_Id admin
     # Tenant_Id admin
     # User_Domain_Name default
     # Project_Domain_Name default
     Auth_Mode keystone
     Auth_Url "http://10.11.26.254:35357/v3"
     Username gnocchi
     Project_Name service
     Tenant_Name service
     Password G9ihscikcn7BTj3OcqQQf6VMUsQwvyfz5vZVHbIt
     User_Domain_Id default
     Project_Domain_Id default

     # Region_Name regionOne
     # Interface public
     # Endpoint http://localhost:8041 # if you want to override Keystone value


     ## Default resource type created by the plugin in Gnocchi
     ## to store hosts
     ResourceType collectd


     ## Minimum number of values to batch
     BatchSize 1
  </Module>
</Plugin>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/collectd -f -C /etc/collectd/collectd.conf'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strncpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:296
296     ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: No such file or directory.
[Current thread is 1 (Thread 0x7fffd1ffb700 (LWP 31))]
(gdb) backtrace full
#0  __strncpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:296
No locals.
#1  0x000000000041b451 in strncpy (__len=__len@entry=128, __src=<optimized out>, __dest=0x7fffc4000f70 "", __dest@entry=0x7fffc4000f90 "")
    at /usr/include/x86_64-linux-gnu/bits/string3.h:126
No locals.
#2  sstrncpy (dest=dest@entry=0x7fffc4000f70 "", src=<optimized out>, n=n@entry=128) at src/daemon/common.c:81
No locals.
#3  0x00000000004111a0 in plugin_value_list_clone (vl_orig=vl_orig@entry=0x7fffd1ffa7d0) at src/daemon/plugin.c:702
        vl = 0x7fffc4000f50
#4  0x00000000004112b3 in plugin_write_enqueue (vl=0x7fffd1ffa7d0) at src/daemon/plugin.c:754
        q = 0x7fffc4000f20
#5  plugin_dispatch_values (vl=0x7fffd1ffa7d0) at src/daemon/plugin.c:2093
        statistics_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
              __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}

logfile ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ python ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ collectd.conf์—์„œ ์ œ๊ฑฐํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ถ”๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค์‹œ ์ถฉ๋Œํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ถฉ๋Œ์˜ ์ด์œ ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค:
[๋””๋ฒ„๊ทธ] hostname_g = (null);

์ฐพ์•„์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

cc @SeanCampbell
๊ด€๋ จ #2467

FQDNLookup false ์„ค์ •๋˜๊ณ  ๋ช…์‹œ์  Hostname ๊ตฌ์„ฑ๋˜์ง€ ์•Š์•„ hostname_g ์ด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/collectd/collectd/commit/69a2285dea4568c0010f116d22415f301b74579a#diff -6bbb0da0e748a6d60b63a37e8c8da457R97 ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ์ˆ˜์ •:

--- a/src/daemon/collectd.c
+++ b/src/daemon/collectd.c
@@ -100,8 +100,10 @@ static int init_hostname(void) {
   }

   str = global_option_get("FQDNLookup");
-  if (IS_FALSE(str))
+  if (IS_FALSE(str)) {
+    hostname_set(hostname);
     return 0;
+  }

   struct addrinfo ai_hints = {.ai_flags = AI_CANONNAME};

๋ฉ‹์ง„ ์ž‘์—…, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @rpv-tomsk!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰