Ad Widget

Collapse

Server stops after several signal SIGSEGV, because SQL record set null

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • flako
    Member
    • Sep 2011
    • 40

    #1

    Server stops after several signal SIGSEGV, because SQL record set null

    Hello

    In summary, after several

    Code:
      
      4568:20110930:111449.035 End of get_function_parameter_uint():SUCCEED
      4568:20110930:111449.035 In DBget_history()
      4568:20110930:111449.035 query [txnlev:1] [select max(value)-min(value) from history where itemid=23149 and clock>1317392089 and clock<=1317392089]
      4562:20110930:111449.035 In delete_history() table:'history' itemid:20491 keep_history:30 now:1317392083
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history where itemid=20491]
      4568:20110930:111449.035 Got signal [signal:11(SIGSEGV),reason:1,refaddr:(nil)]. Crashing ...
      4562:20110930:111449.035 In delete_history() table:'history_uint' itemid:20491 keep_history:30 now:1317392083
      4568:20110930:111449.035 ====== Fatal information: ======
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history_uint where itemid=20491]
      4568:20110930:111449.035 Program counter: 0x7f7214148672
    ......
    .......
    ......
      4568:20110930:111449.035 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4552:20110930:111449.035 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
    .....
    .....
    .....  
      4550:20110930:111449.043 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
    ....
    ....
    ....
     4543:20110930:111451.039 Zabbix Server stopped. Zabbix 1.8.7 (revision 21394).
    The server stops

    My infrastructure is
    Zabbix Server v1.8.7 (revision 21 394) (1 September 2011)
    mysql-5.0.67-13.20.1
    apache2-2.2.10-2.24.5
    SUSE Linux Enterprise Server 11 SP1 (x86_64)
    Linux 2.6.32.12-0.7-xen # 1 SMP x86_64 x86_64 x86_64 GNU / Linux
    Number of agents = 3


    Apparently the error occurs after editing a snmp templates, the server stops me 5 minutes to start it.
    I disabled the discovery rules, events, agents stopped and are still being arrested for not stopping, I had to put the host as "Not Monitored" is not to stop the server.
    Placing host as the host monitor found that fails, a Windows XP that has the agent and the Windows SNMP service to the public community.

    That was the behavior, which I gathered from the log is running SQL queries that return the value null as "select min (clock) from history_log WHERE itemid = 20482", where in this case the table is empty (in other cases with other tables, so that there is the itemid)

    5hs ago I am analyzing and analyzing .. and not what else to do .. for me is a bug, since it should not colgarce for a consultation with null records.

    I do not understand Todabia zabbix tables, so good I can not delete to fix the bugs,
    I can not know what else to do ..
    Any suggestions? addition to load it as a bug?



    Below I leave part of the log, and this link http://www.fileupyours.com/view/3094...V_SQL_null.log is almost complete (from the start until the server stops)


    Code:
      4564:20110930:111449.031 query [txnlev:0] [select min(t.nextcheck) from httptest t,applications a,hosts h where t.applicationid=a.applicationid and a.hostid=h.hostid and mod(t.httptestid,1)=0 and t.status=0 and h.status=0 and (h.maintenance_status=0 or h.maintenance_type=0) and t.httptestid between 000000000000000 and 099999999999999]
      4562:20110930:111449.031 query [txnlev:0] [select min(clock) from history_text where itemid=20488]
      4568:20110930:111449.031 query [txnlev:1] [select itemid,status,lastclock,prevorgvalue,delta,multiplier,formula,history,trends,error from items where itemid in (23149,23209,23269) order by itemid]
    
      4562:20110930:111449.032 In delete_history() table:'history_log' itemid:20488 keep_history:30 now:1317392083
      4562:20110930:111449.032 query [txnlev:0] [select min(clock) from history_log where itemid=20488]
      4564:20110930:111449.032 No httptests to process in get_minnextcheck.
      4564:20110930:111449.032 sleeping for 5 seconds
      4568:20110930:111449.032 query [txnlev:1] [select h.host,i.key_ from hosts h,items i where h.hostid=i.hostid and i.itemid=23209]
      4562:20110930:111449.032 In delete_history() table:'trends' itemid:20488 keep_history:365 now:1317392083
      4567:20110930:111449.032 7f7214ec8000-7f72150c7000 ---p 00127000 ca:01 688846                     /usr/lib64/libmysqlclient.so.15.0.0
      4562:20110930:111449.032 query [txnlev:0] [select min(clock) from trends where itemid=20488]
      4567:20110930:111449.032 7f72150c7000-7f72150ca000 r--p 00126000 ca:01 688846                     /usr/lib64/libmysqlclient.so.15.0.0
      4567:20110930:111449.032 7f72150ca000-7f72150fc000 rw-p 00129000 ca:01 688846                     /usr/lib64/libmysqlclient.so.15.0.0
      4567:20110930:111449.032 7f72150fc000-7f72150fd000 rw-p 00000000 00:00 0 
      4568:20110930:111449.032 Item [ajrpruebaxp.mydomain.com:ifDescr44] became not supported: SNMP error [(noSuchName) There is no such variable name in this MIB.]
      4562:20110930:111449.032 In delete_history() table:'trends_uint' itemid:20488 keep_history:365 now:1317392083
      4568:20110930:111449.032 In DCadd_nextcheck()
      4567:20110930:111449.032 7f72150fd000-7f7215251000 r-xp 00000000 ca:01 495732                     /usr/lib64/libcrypto.so.0.9.8
      4568:20110930:111449.032 End of DCadd_nextcheck()
      4562:20110930:111449.032 query [txnlev:0] [select min(clock) from trends_uint where itemid=20488]
      4567:20110930:111449.032 7f7215251000-7f7215451000 ---p 00154000 ca:01 495732                     /usr/lib64/libcrypto.so.0.9.8
      4568:20110930:111449.032 query [txnlev:1] [select h.host,i.key_ from hosts h,items i where h.hostid=i.hostid and i.itemid=23269]
      4567:20110930:111449.032 7f7215451000-7f721545e000 r--p 00154000 ca:01 495732                     /usr/lib64/libcrypto.so.0.9.8
      4567:20110930:111449.032 7f721545e000-7f7215475000 rw-p 00161000 ca:01 495732                     /usr/lib64/libcrypto.so.0.9.8
      4567:20110930:111449.032 7f7215475000-7f7215478000 rw-p 00000000 00:00 0 
      4562:20110930:111449.032 In delete_history() table:'history' itemid:20489 keep_history:30 now:1317392083
      4567:20110930:111449.032 7f7215478000-7f721551b000 r-xp 00000000 ca:01 688629                     /usr/lib64/libnetsnmp.so.15.1.2
      4562:20110930:111449.032 query [txnlev:0] [select min(clock) from history where itemid=20489]
      4567:20110930:111449.032 7f721551b000-7f721571b000 ---p 000a3000 ca:01 688629                     /usr/lib64/libnetsnmp.so.15.1.2
      4568:20110930:111449.032 Item [ajrpruebaxp.mydomain.com:ifInOctets6] became not supported: SNMP error [(noSuchName) There is no such variable name in this MIB.]
      4567:20110930:111449.032 7f721571b000-7f721571c000 r--p 000a3000 ca:01 688629                     /usr/lib64/libnetsnmp.so.15.1.2
      4568:20110930:111449.032 In DCadd_nextcheck()
      4567:20110930:111449.032 7f721571c000-7f721571f000 rw-p 000a4000 ca:01 688629                     /usr/lib64/libnetsnmp.so.15.1.2
      4567:20110930:111449.032 7f721571f000-7f7215754000 rw-p 00000000 00:00 0 
      4568:20110930:111449.032 End of DCadd_nextcheck()
      4567:20110930:111449.032 7f7215754000-7f7215794000 r-xp 00000000 ca:01 688438                     /usr/lib64/libcurl.so.4.1.0
      4562:20110930:111449.032 In delete_history() table:'history_uint' itemid:20489 keep_history:30 now:1317392083
      4568:20110930:111449.032 query [txnlev:1] [update items set lastclock=1317392089,prevvalue=lastvalue,lastvalue='55.000000' where itemid=23149;
    update items set lastclock=1317392089,status=3,error='SNMP error [(noSuchName) There is no such variable name in this MIB.]' where itemid=23209;
    update items set lastclock=1317392089,status=3,error='SNMP error [(noSuchName) There is no such variable name in this MIB.]' where itemid=23269;
    ]
      4562:20110930:111449.032 query [txnlev:0] [select min(clock) from history_uint where itemid=20489]
      4567:20110930:111449.032 7f7215794000-7f7215993000 ---p 00040000 ca:01 688438                     /usr/lib64/libcurl.so.4.1.0
      4567:20110930:111449.032 7f7215993000-7f7215995000 r--p 0003f000 ca:01 688438                     /usr/lib64/libcurl.so.4.1.0
      4567:20110930:111449.032 7f7215995000-7f7215996000 rw-p 00041000 ca:01 688438                     /usr/lib64/libcurl.so.4.1.0
      4567:20110930:111449.032 7f7215996000-7f72159b5000 r-xp 00000000 ca:01 688130                     /lib64/ld-2.11.1.so
      4567:20110930:111449.032 7f7215b60000-7f7215b95000 r--s 00000000 ca:01 951032                     /var/run/nscd/services
      4562:20110930:111449.032 In delete_history() table:'history_str' itemid:20489 keep_history:30 now:1317392083
    
      4567:20110930:111449.033 7f7215b95000-7f7215ba3000 rw-p 00000000 00:00 0 
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from history_str where itemid=20489]
      4567:20110930:111449.033 7f7215bb1000-7f7215bb4000 rw-p 00000000 00:00 0 
      4567:20110930:111449.033 7f7215bb4000-7f7215bb5000 r--p 0001e000 ca:01 688130                     /lib64/ld-2.11.1.so
      4567:20110930:111449.033 7f7215bb5000-7f7215bb6000 rw-p 0001f000 ca:01 688130                     /lib64/ld-2.11.1.so
      4567:20110930:111449.033 7f7215bb6000-7f7215bb7000 rw-p 00000000 00:00 0 
      4567:20110930:111449.033 7fff3109f000-7fff310c5000 rw-p 00000000 00:00 0                          [stack]
      4562:20110930:111449.033 In delete_history() table:'history_text' itemid:20489 keep_history:30 now:1317392083
      4567:20110930:111449.033 7fff310de000-7fff310df000 r-xp 00000000 00:00 0                          [vdso]
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from history_text where itemid=20489]
      4567:20110930:111449.033 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
      4567:20110930:111449.033 ================================
      4567:20110930:111449.033 Please consider attaching a disassembly listing to your bug report.
      4567:20110930:111449.033 This listing can be produced with, e.g., objdump -DSswx zabbix_server.
      4568:20110930:111449.033 End of DCmass_update_items()
      4567:20110930:111449.033 ================================
      4562:20110930:111449.033 In delete_history() table:'history_log' itemid:20489 keep_history:30 now:1317392083
      4568:20110930:111449.033 In DCmass_add_history()
      4568:20110930:111449.033 query [txnlev:1] [insert into history (itemid,clock,value) values (23149,1317392089,55.000000);
    ]
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from history_log where itemid=20489]
      4562:20110930:111449.033 In delete_history() table:'trends' itemid:20489 keep_history:365 now:1317392083
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from trends where itemid=20489]
      4562:20110930:111449.033 In delete_history() table:'trends_uint' itemid:20489 keep_history:365 now:1317392083
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from trends_uint where itemid=20489]
      4562:20110930:111449.033 In delete_history() table:'history' itemid:20490 keep_history:30 now:1317392083
      4568:20110930:111449.033 In DCmass_update_triggers()
      4568:20110930:111449.033 query [txnlev:1] [select distinct t.triggerid,t.type,t.value,t.error,t.expression,f.itemid from triggers t,functions f,items i where t.triggerid=f.triggerid and f.itemid=i.itemid and t.status=0 and f.itemid in (23149) order by t.triggerid]
      4562:20110930:111449.033 query [txnlev:0] [select min(clock) from history where itemid=20490]
    
      4562:20110930:111449.034 In delete_history() table:'history_uint' itemid:20490 keep_history:30 now:1317392083
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from history_uint where itemid=20490]
      4562:20110930:111449.034 In delete_history() table:'history_str' itemid:20490 keep_history:30 now:1317392083
      4568:20110930:111449.034 In evaluate_expression() expression:'{13325}>100'
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from history_str where itemid=20490]
      4568:20110930:111449.034 In substitute_simple_macros() data:'{13325}>100'
      4568:20110930:111449.034 End substitute_simple_macros() data:'{13325}>100'
      4568:20110930:111449.034 In substitute_functions() expression:'{13325}>100'
      4562:20110930:111449.034 In delete_history() table:'history_text' itemid:20490 keep_history:30 now:1317392083
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from history_text where itemid=20490]
      4568:20110930:111449.034 query [txnlev:1] [select distinct i.itemid,i.key_,h.host,h.port,i.delay,i.description,i.type,h.useip,h.ip,i.history,i.lastvalue,i.prevvalue,i.hostid,i.value_type,i.delta,i.prevorgvalue,i.lastclock,i.units,i.multiplier,i.formula,i.status,i.valuemapid,h.dns,i.trends,i.lastlogsize,i.data_type,i.mtime,f.function,f.parameter,h.status from hosts h,items i,functions f where i.hostid=h.hostid and i.itemid=f.itemid and f.functionid=13325]
      4566:20110930:111449.034 Syncing ...
      4566:20110930:111449.034 In DCsync_history() history_first:20 history_num:0
      4566:20110930:111449.034 history syncer #1 spent 0.000031 seconds while processing 0 items
      4562:20110930:111449.034 In delete_history() table:'history_log' itemid:20490 keep_history:30 now:1317392083
      4566:20110930:111449.034 sleeping for 5 seconds
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from history_log where itemid=20490]
      4568:20110930:111449.034 In substitute_simple_macros() data:'icmpInEchos'
      4562:20110930:111449.034 In delete_history() table:'trends' itemid:20490 keep_history:365 now:1317392083
      4568:20110930:111449.034 In evaluate_function() function:'ajrpruebaxp.mydomain.com:icmpInEchos.delta(0)'
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from trends where itemid=20490]
      4568:20110930:111449.034 In evaluate_DELTA()
      4568:20110930:111449.034 In get_function_parameter_uint() parameters:'0' Nparam:1
      4568:20110930:111449.034 In substitute_simple_macros() data:'0'
      4562:20110930:111449.034 In delete_history() table:'trends_uint' itemid:20490 keep_history:365 now:1317392083
      4568:20110930:111449.034 get_function_parameter_uint() flag:0 value:0
      4562:20110930:111449.034 query [txnlev:0] [select min(clock) from trends_uint where itemid=20490]
    
    
      4568:20110930:111449.035 End of get_function_parameter_uint():SUCCEED
      4568:20110930:111449.035 In DBget_history()
      4568:20110930:111449.035 query [txnlev:1] [select max(value)-min(value) from history where itemid=23149 and clock>1317392089 and clock<=1317392089]
      4562:20110930:111449.035 In delete_history() table:'history' itemid:20491 keep_history:30 now:1317392083
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history where itemid=20491]
      4568:20110930:111449.035 Got signal [signal:11(SIGSEGV),reason:1,refaddr:(nil)]. Crashing ...
      4562:20110930:111449.035 In delete_history() table:'history_uint' itemid:20491 keep_history:30 now:1317392083
      4568:20110930:111449.035 ====== Fatal information: ======
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history_uint where itemid=20491]
      4568:20110930:111449.035 Program counter: 0x7f7214148672
      4568:20110930:111449.035 === Registers: ===
      4568:20110930:111449.035 r8      =                0 =                    0 =                    0
      4568:20110930:111449.035 r9      =                1 =                    1 =                    1
      4562:20110930:111449.035 In delete_history() table:'history_str' itemid:20491 keep_history:30 now:1317392083
      4568:20110930:111449.035 r10     = 800500000015003f =  9224779411739705407 = -9221964661969846209
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history_str where itemid=20491]
      4568:20110930:111449.035 r11     =     7f7214423eb0 =      140127942885040 =      140127942885040
      4568:20110930:111449.035 r12     =              81f =                 2079 =                 2079
      4568:20110930:111449.035 r13     =           47eb56 =              4713302 =              4713302
      4562:20110930:111449.035 In delete_history() table:'history_text' itemid:20491 keep_history:30 now:1317392083
      4568:20110930:111449.035 r14     =           6c2cd0 =              7089360 =              7089360
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history_text where itemid=20491]
      4568:20110930:111449.035 r15     =           6c8780 =              7112576 =              7112576
      4568:20110930:111449.035 rdi     =                0 =                    0 =                    0
      4543:20110930:111449.035 One child process died (PID:4567,exitcode/signal:255). Exiting ...
      4568:20110930:111449.035 rsi     =              81f =                 2079 =                 2079
      4562:20110930:111449.035 In delete_history() table:'history_log' itemid:20491 keep_history:30 now:1317392083
      4543:20110930:111449.035 zbx_on_exit() called
      4568:20110930:111449.035 rbp     =                0 =                    0 =                    0
      4562:20110930:111449.035 query [txnlev:0] [select min(clock) from history_log where itemid=20491]
      4568:20110930:111449.035 rbx     =                9 =                    9 =                    9
      4568:20110930:111449.035 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4552:20110930:111449.035 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4545:20110930:111449.035 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4557:20110930:111449.036 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4548:20110930:111449.036 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4561:20110930:111449.037 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4554:20110930:111449.037 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4553:20110930:111449.037 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4565:20110930:111449.038 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4556:20110930:111449.038 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4555:20110930:111449.038 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4558:20110930:111449.038 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4569:20110930:111449.039 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4562:20110930:111449.039 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4559:20110930:111449.039 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4570:20110930:111449.040 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4560:20110930:111449.040 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4546:20110930:111449.041 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4571:20110930:111449.041 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4572:20110930:111449.042 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4566:20110930:111449.042 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4563:20110930:111449.042 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4564:20110930:111449.043 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4551:20110930:111449.043 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4550:20110930:111449.043 Got signal [signal:15(SIGTERM),sender_pid:4543,sender_uid:1001,reason:0]. Exiting ...
      4543:20110930:111451.037 In DBconnect() flag:1
      4543:20110930:111451.038 query [txnlev:0] [SET NAMES utf8]
      4543:20110930:111451.038 End of DBconnect():0
      4543:20110930:111451.038 In free_database_cache()
      4543:20110930:111451.038 In DCsync_all()
      4543:20110930:111451.038 In DCsync_history() history_first:20 history_num:0
      4543:20110930:111451.038 Syncing history data...
      4543:20110930:111451.038 Syncing history data... done.
      4543:20110930:111451.038 In DCsync_trends() trends_num:0
      4543:20110930:111451.038 Syncing trends data...
      4543:20110930:111451.038 query [txnlev:1] [begin;]
      4543:20110930:111451.038 query [txnlev:1] [commit;]
      4543:20110930:111451.038 Syncing trends data... done.
      4543:20110930:111451.038 End of DCsync_trends()
      4543:20110930:111451.038 End of DCsync_all()
      4543:20110930:111451.038 In zbx_mem_destroy() descr:'history cache'
      4543:20110930:111451.038 End of zbx_mem_destroy()
      4543:20110930:111451.038 In zbx_mem_destroy() descr:'history text cache'
      4543:20110930:111451.038 End of zbx_mem_destroy()
      4543:20110930:111451.038 In zbx_mem_destroy() descr:'trend cache'
      4543:20110930:111451.038 End of zbx_mem_destroy()
      4543:20110930:111451.038 End of free_database_cache()
      4543:20110930:111451.038 In free_configuration_cache()
      4543:20110930:111451.038 In zbx_mem_destroy() descr:'configuration cache'
      4543:20110930:111451.038 End of zbx_mem_destroy()
      4543:20110930:111451.038 In zbx_strpool_destroy()
      4543:20110930:111451.038 In zbx_mem_destroy() descr:'string pool'
      4543:20110930:111451.038 End of zbx_mem_destroy()
      4543:20110930:111451.038 End of zbx_strpool_destroy()
      4543:20110930:111451.038 End of free_configuration_cache()
      4543:20110930:111451.039 In free_ipmi_handler()
      4543:20110930:111451.039 End of free_ipmi_handler()
      4543:20110930:111451.039 In free_selfmon_collector() collector:0x7f720f1d8000
      4543:20110930:111451.039 End of free_selfmon_collector()
      4543:20110930:111451.039 Zabbix Server stopped. Zabbix 1.8.7 (revision 21394).

    Thank you for getting here.
    Sorry to google translate, do what you can, my Spanish is very bad
Working...