yowcow / goromdb

Yet another single process KVS server implemented over file-based database
The Unlicense
12 stars 5 forks source link

fix bdb segmentation violation #63

Closed yowcow closed 6 years ago

yowcow commented 6 years ago

to fix #62, change database handling as followings:

yowcow commented 6 years ago
cat /proc/$(ps awux | grep goromdb | grep -v grep | awk '{ print $2 }')/status
...
VmPeak:  1266868 kB
VmSize:  1266868 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    574016 kB
VmRSS:    574016 kB
VmData:  1254324 kB
VmStk:       132 kB
VmExe:      2376 kB
VmLib:      3728 kB
VmPTE:      1268 kB
VmPMD:        28 kB
VmSwap:        0 kB
...
% lsof -c goromdb
COMMAND   PID    USER   FD      TYPE  DEVICE SIZE/OFF    NODE NAME
goromdb 28826 vagrant  cwd       DIR   252,0     4096 1583349 /home/vagrant/go/src/github.com/yowcow/goromdb
goromdb 28826 vagrant  rtd       DIR   252,0     4096       2 /
goromdb 28826 vagrant  txt       REG   252,0  3913992 3167372 /home/vagrant/go/src/github.com/yowcow/goromdb/goromdb
goromdb 28826 vagrant  mem       REG   252,0  1868984 1066554 /lib/x86_64-linux-gnu/libc-2.23.so
goromdb 28826 vagrant  mem       REG   252,0   138696 1066537 /lib/x86_64-linux-gnu/libpthread-2.23.so
goromdb 28826 vagrant  mem       REG   252,0  1756696 2238356 /usr/lib/x86_64-linux-gnu/libdb-5.3.so
goromdb 28826 vagrant  mem       REG   252,0   162632 1066532 /lib/x86_64-linux-gnu/ld-2.23.so
goromdb 28826 vagrant    0u      CHR   136,3      0t0       6 /dev/pts/3
goromdb 28826 vagrant    1u      CHR   136,3      0t0       6 /dev/pts/3
goromdb 28826 vagrant    2u      CHR   136,3      0t0       6 /dev/pts/3
goromdb 28826 vagrant    3u     IPv6 1062874      0t0     TCP *:11211 (LISTEN)
goromdb 28826 vagrant    4u  a_inode    0,11        0    6978 [eventpoll]
goromdb 28826 vagrant    5u     IPv6 1199649      0t0     TCP 192.168.33.10:11211->192.168.33.1:61799 (ESTABLISHED)
goromdb 28826 vagrant    6r      REG   252,0 84668416 2231935 /home/vagrant/go/src/github.com/yowcow/goromdb/tmp/data01/data.db
goromdb 28826 vagrant    7u     IPv6 1199650      0t0     TCP 192.168.33.10:11211->192.168.33.1:61800 (ESTABLISHED)
goromdb 28826 vagrant    8u     IPv6 1199651      0t0     TCP 192.168.33.10:11211->192.168.33.1:61801 (ESTABLISHED)
goromdb 28826 vagrant    9u     IPv6 1199652      0t0     TCP 192.168.33.10:11211->192.168.33.1:61802 (ESTABLISHED)
goromdb 28826 vagrant   10u     IPv6 1199744      0t0     TCP 192.168.33.10:11211->192.168.33.1:61852 (ESTABLISHED)
goromdb 28826 vagrant   11u     IPv6 1199694      0t0     TCP 192.168.33.10:11211->192.168.33.1:61803 (ESTABLISHED)
goromdb 28826 vagrant   12u     IPv6 1199695      0t0     TCP 192.168.33.10:11211->192.168.33.1:61804 (ESTABLISHED)
goromdb 28826 vagrant   13u     IPv6 1199696      0t0     TCP 192.168.33.10:11211->192.168.33.1:61806 (ESTABLISHED)
goromdb 28826 vagrant   14u     IPv6 1199697      0t0     TCP 192.168.33.10:11211->192.168.33.1:61805 (ESTABLISHED)
goromdb 28826 vagrant   15u     IPv6 1199698      0t0     TCP 192.168.33.10:11211->192.168.33.1:61807 (ESTABLISHED)
goromdb 28826 vagrant   16u     IPv6 1199699      0t0     TCP 192.168.33.10:11211->192.168.33.1:61808 (ESTABLISHED)
goromdb 28826 vagrant   17u     IPv6 1199745      0t0     TCP 192.168.33.10:11211->192.168.33.1:61853 (ESTABLISHED)
goromdb 28826 vagrant   18u     IPv6 1199700      0t0     TCP 192.168.33.10:11211->192.168.33.1:61809 (ESTABLISHED)
goromdb 28826 vagrant   19u     IPv6 1199701      0t0     TCP 192.168.33.10:11211->192.168.33.1:61810 (ESTABLISHED)
goromdb 28826 vagrant   20u     IPv6 1199702      0t0     TCP 192.168.33.10:11211->192.168.33.1:61811 (ESTABLISHED)
goromdb 28826 vagrant   21u     IPv6 1199703      0t0     TCP 192.168.33.10:11211->192.168.33.1:61812 (ESTABLISHED)
goromdb 28826 vagrant   22u     IPv6 1199552      0t0     TCP 192.168.33.10:11211->192.168.33.1:61704 (ESTABLISHED)
goromdb 28826 vagrant   23u     IPv6 1199553      0t0     TCP 192.168.33.10:11211->192.168.33.1:61705 (ESTABLISHED)
goromdb 28826 vagrant   24u     IPv6 1199746      0t0     TCP 192.168.33.10:11211->192.168.33.1:61854 (ESTABLISHED)
goromdb 28826 vagrant   25u     IPv6 1199747      0t0     TCP 192.168.33.10:11211->192.168.33.1:61855 (ESTABLISHED)
goromdb 28826 vagrant   26u     IPv6 1199748      0t0     TCP 192.168.33.10:11211->192.168.33.1:61856 (ESTABLISHED)
goromdb 28826 vagrant   27u     IPv6 1199749      0t0     TCP 192.168.33.10:11211->192.168.33.1:61857 (ESTABLISHED)
goromdb 28826 vagrant   28u     IPv6 1199750      0t0     TCP 192.168.33.10:11211->192.168.33.1:61858 (ESTABLISHED)
goromdb 28826 vagrant   29u     IPv6 1199704      0t0     TCP 192.168.33.10:11211->192.168.33.1:61813 (ESTABLISHED)
goromdb 28826 vagrant   30r      REG   252,0 84668416 2230889 /home/vagrant/go/src/github.com/yowcow/goromdb/tmp/data00/data.db
goromdb 28826 vagrant   31u     IPv6 1199705      0t0     TCP 192.168.33.10:11211->192.168.33.1:61814 (ESTABLISHED)
goromdb 28826 vagrant   32u     IPv6 1199706      0t0     TCP 192.168.33.10:11211->192.168.33.1:61815 (ESTABLISHED)
goromdb 28826 vagrant   33u     IPv6 1199707      0t0     TCP 192.168.33.10:11211->192.168.33.1:61816 (ESTABLISHED)
goromdb 28826 vagrant   34u     IPv6 1199751      0t0     TCP 192.168.33.10:11211->192.168.33.1:61859 (ESTABLISHED)
goromdb 28826 vagrant   35u     IPv6 1199752      0t0     TCP 192.168.33.10:11211->192.168.33.1:61860 (ESTABLISHED)
goromdb 28826 vagrant   36u     IPv6 1199708      0t0     TCP 192.168.33.10:11211->192.168.33.1:61817 (ESTABLISHED)
goromdb 28826 vagrant   37u     IPv6 1199753      0t0     TCP 192.168.33.10:11211->192.168.33.1:61861 (ESTABLISHED)
goromdb 28826 vagrant   38u     IPv6 1199563      0t0     TCP 192.168.33.10:11211->192.168.33.1:61715 (ESTABLISHED)
goromdb 28826 vagrant   39u     IPv6 1199709      0t0     TCP 192.168.33.10:11211->192.168.33.1:61818 (ESTABLISHED)
goromdb 28826 vagrant   40u     IPv6 1199710      0t0     TCP 192.168.33.10:11211->192.168.33.1:61819 (ESTABLISHED)
goromdb 28826 vagrant   41u     IPv6 1199754      0t0     TCP 192.168.33.10:11211->192.168.33.1:61862 (ESTABLISHED)
goromdb 28826 vagrant   42u     IPv6 1199755      0t0     TCP 192.168.33.10:11211->192.168.33.1:61863 (ESTABLISHED)
goromdb 28826 vagrant   43u     IPv6 1199756      0t0     TCP 192.168.33.10:11211->192.168.33.1:61864 (ESTABLISHED)
goromdb 28826 vagrant   44u     IPv6 1199757      0t0     TCP 192.168.33.10:11211->192.168.33.1:61865 (ESTABLISHED)
goromdb 28826 vagrant   45u     IPv6 1199758      0t0     TCP 192.168.33.10:11211->192.168.33.1:61866 (ESTABLISHED)
goromdb 28826 vagrant   46u     IPv6 1199571      0t0     TCP 192.168.33.10:11211->192.168.33.1:61723 (ESTABLISHED)
goromdb 28826 vagrant   47u     IPv6 1199572      0t0     TCP 192.168.33.10:11211->192.168.33.1:61724 (ESTABLISHED)
goromdb 28826 vagrant   48u     IPv6 1199759      0t0     TCP 192.168.33.10:11211->192.168.33.1:61867 (ESTABLISHED)
goromdb 28826 vagrant   49u     IPv6 1199574      0t0     TCP 192.168.33.10:11211->192.168.33.1:61726 (ESTABLISHED)
goromdb 28826 vagrant   50u     IPv6 1199575      0t0     TCP 192.168.33.10:11211->192.168.33.1:61727 (ESTABLISHED)
goromdb 28826 vagrant   51u     IPv6 1199576      0t0     TCP 192.168.33.10:11211->192.168.33.1:61728 (ESTABLISHED)
goromdb 28826 vagrant   52u     IPv6 1199577      0t0     TCP 192.168.33.10:11211->192.168.33.1:61729 (ESTABLISHED)
goromdb 28826 vagrant   53u     IPv6 1199578      0t0     TCP 192.168.33.10:11211->192.168.33.1:61730 (ESTABLISHED)
goromdb 28826 vagrant   54u     IPv6 1199579      0t0     TCP 192.168.33.10:11211->192.168.33.1:61731 (ESTABLISHED)
goromdb 28826 vagrant   55u     IPv6 1199580      0t0     TCP 192.168.33.10:11211->192.168.33.1:61732 (ESTABLISHED)
goromdb 28826 vagrant   56u     IPv6 1199581      0t0     TCP 192.168.33.10:11211->192.168.33.1:61733 (ESTABLISHED)
goromdb 28826 vagrant   57u     IPv6 1199582      0t0     TCP 192.168.33.10:11211->192.168.33.1:61734 (ESTABLISHED)
goromdb 28826 vagrant   58u     IPv6 1199583      0t0     TCP 192.168.33.10:11211->192.168.33.1:61735 (ESTABLISHED)
goromdb 28826 vagrant   59u     IPv6 1199584      0t0     TCP 192.168.33.10:11211->192.168.33.1:61736 (ESTABLISHED)
goromdb 28826 vagrant   60u     IPv6 1199760      0t0     TCP 192.168.33.10:11211->192.168.33.1:61868 (ESTABLISHED)
goromdb 28826 vagrant   61u     IPv6 1199761      0t0     TCP 192.168.33.10:11211->192.168.33.1:61869 (ESTABLISHED)
goromdb 28826 vagrant   62u     IPv6 1199762      0t0     TCP 192.168.33.10:11211->192.168.33.1:61870 (ESTABLISHED)
goromdb 28826 vagrant   63u     IPv6 1199763      0t0     TCP 192.168.33.10:11211->192.168.33.1:61871 (ESTABLISHED)
goromdb 28826 vagrant   67u     IPv6 1199711      0t0     TCP 192.168.33.10:11211->192.168.33.1:61820 (ESTABLISHED)
goromdb 28826 vagrant   68u     IPv6 1199712      0t0     TCP 192.168.33.10:11211->192.168.33.1:61821 (ESTABLISHED)
goromdb 28826 vagrant   69u     IPv6 1199713      0t0     TCP 192.168.33.10:11211->192.168.33.1:61822 (ESTABLISHED)
goromdb 28826 vagrant   70u     IPv6 1199714      0t0     TCP 192.168.33.10:11211->192.168.33.1:61823 (ESTABLISHED)
goromdb 28826 vagrant   71u     IPv6 1199715      0t0     TCP 192.168.33.10:11211->192.168.33.1:61824 (ESTABLISHED)
goromdb 28826 vagrant   72u     IPv6 1199716      0t0     TCP 192.168.33.10:11211->192.168.33.1:61825 (ESTABLISHED)
goromdb 28826 vagrant   73u     IPv6 1199717      0t0     TCP 192.168.33.10:11211->192.168.33.1:61826 (ESTABLISHED)
goromdb 28826 vagrant   77u     IPv6 1199601      0t0     TCP 192.168.33.10:11211->192.168.33.1:61753 (ESTABLISHED)
goromdb 28826 vagrant   83u     IPv6 1199607      0t0     TCP 192.168.33.10:11211->192.168.33.1:61759 (ESTABLISHED)
goromdb 28826 vagrant   84u     IPv6 1199608      0t0     TCP 192.168.33.10:11211->192.168.33.1:61760 (ESTABLISHED)
goromdb 28826 vagrant   88u     IPv6 1199718      0t0     TCP 192.168.33.10:11211->192.168.33.1:61827 (ESTABLISHED)
goromdb 28826 vagrant   91u     IPv6 1199614      0t0     TCP 192.168.33.10:11211->192.168.33.1:61766 (ESTABLISHED)
goromdb 28826 vagrant   92u     IPv6 1199719      0t0     TCP 192.168.33.10:11211->192.168.33.1:61828 (ESTABLISHED)
goromdb 28826 vagrant   93u     IPv6 1199720      0t0     TCP 192.168.33.10:11211->192.168.33.1:61829 (ESTABLISHED)
goromdb 28826 vagrant   94u     IPv6 1199721      0t0     TCP 192.168.33.10:11211->192.168.33.1:61830 (ESTABLISHED)
goromdb 28826 vagrant   95u     IPv6 1199722      0t0     TCP 192.168.33.10:11211->192.168.33.1:61831 (ESTABLISHED)
goromdb 28826 vagrant   96u     IPv6 1199615      0t0     TCP 192.168.33.10:11211->192.168.33.1:61767 (ESTABLISHED)
goromdb 28826 vagrant   97u     IPv6 1199616      0t0     TCP 192.168.33.10:11211->192.168.33.1:61768 (ESTABLISHED)
goromdb 28826 vagrant   98u     IPv6 1199723      0t0     TCP 192.168.33.10:11211->192.168.33.1:61832 (ESTABLISHED)
goromdb 28826 vagrant   99u     IPv6 1199617      0t0     TCP 192.168.33.10:11211->192.168.33.1:61769 (ESTABLISHED)
goromdb 28826 vagrant  100u     IPv6 1199724      0t0     TCP 192.168.33.10:11211->192.168.33.1:61833 (ESTABLISHED)
goromdb 28826 vagrant  101u     IPv6 1199725      0t0     TCP 192.168.33.10:11211->192.168.33.1:61834 (ESTABLISHED)
goromdb 28826 vagrant  102u     IPv6 1199726      0t0     TCP 192.168.33.10:11211->192.168.33.1:61835 (ESTABLISHED)
goromdb 28826 vagrant  103u     IPv6 1199618      0t0     TCP 192.168.33.10:11211->192.168.33.1:61770 (ESTABLISHED)
goromdb 28826 vagrant  104u     IPv6 1199727      0t0     TCP 192.168.33.10:11211->192.168.33.1:61836 (ESTABLISHED)
goromdb 28826 vagrant  105u     IPv6 1199728      0t0     TCP 192.168.33.10:11211->192.168.33.1:61837 (ESTABLISHED)
goromdb 28826 vagrant  109u     IPv6 1199622      0t0     TCP 192.168.33.10:11211->192.168.33.1:61774 (ESTABLISHED)
goromdb 28826 vagrant  117u     IPv6 1199630      0t0     TCP 192.168.33.10:11211->192.168.33.1:61782 (ESTABLISHED)
goromdb 28826 vagrant  124u     IPv6 1199637      0t0     TCP 192.168.33.10:11211->192.168.33.1:61789 (ESTABLISHED)
goromdb 28826 vagrant  127u     IPv6 1199729      0t0     TCP 192.168.33.10:11211->192.168.33.1:61838 (ESTABLISHED)
goromdb 28826 vagrant  129u     IPv6 1199730      0t0     TCP 192.168.33.10:11211->192.168.33.1:61840 (ESTABLISHED)
goromdb 28826 vagrant  130u     IPv6 1199731      0t0     TCP 192.168.33.10:11211->192.168.33.1:61839 (ESTABLISHED)
goromdb 28826 vagrant  131u     IPv6 1199732      0t0     TCP 192.168.33.10:11211->192.168.33.1:61841 (ESTABLISHED)
goromdb 28826 vagrant  132u     IPv6 1199733      0t0     TCP 192.168.33.10:11211->192.168.33.1:61842 (ESTABLISHED)
goromdb 28826 vagrant  133u     IPv6 1199734      0t0     TCP 192.168.33.10:11211->192.168.33.1:61843 (ESTABLISHED)
goromdb 28826 vagrant  134u     IPv6 1199735      0t0     TCP 192.168.33.10:11211->192.168.33.1:61844 (ESTABLISHED)
goromdb 28826 vagrant  135u     IPv6 1199736      0t0     TCP 192.168.33.10:11211->192.168.33.1:61845 (ESTABLISHED)
goromdb 28826 vagrant  136u     IPv6 1199737      0t0     TCP 192.168.33.10:11211->192.168.33.1:61846 (ESTABLISHED)
goromdb 28826 vagrant  137u     IPv6 1199738      0t0     TCP 192.168.33.10:11211->192.168.33.1:61847 (ESTABLISHED)
goromdb 28826 vagrant  138u     IPv6 1199739      0t0     TCP 192.168.33.10:11211->192.168.33.1:61848 (ESTABLISHED)
goromdb 28826 vagrant  139u     IPv6 1199740      0t0     TCP 192.168.33.10:11211->192.168.33.1:61849 (ESTABLISHED)
goromdb 28826 vagrant  140u     IPv6 1199741      0t0     TCP 192.168.33.10:11211->192.168.33.1:61850 (ESTABLISHED)
goromdb 28826 vagrant  141u     IPv6 1199742      0t0     TCP 192.168.33.10:11211->192.168.33.1:61851 (ESTABLISHED)
yowcow commented 6 years ago

running server with radix handler and bdb for over 1 hour, 100 concurrent client connections, and db reloading every second.

I see no problems so far.