Guest User!

You are not Sophos Staff.

[8.930][BUG] Active / Active cluster

Hi All, 

First of all I'd like to take a moment and tell you guy's that I love the new features of Astaro beta v9, the html5 portal is brilliant! 

Oke, my problem: When I install 2 machine's and put them in an active / active cluster things start to go wrong. 

During the sync all goes well, but when they both become active one of the two machines always goes into kernel panic. I did a complete resinstallation and it didn't fix this issue. 

Setup: 

2 machines, 5 network adapters each, 768 ram each



Configuration:

[LIST=1]

  • 1 firewall rule
  • 1 masq rule
  • 1 DynDns update rule
  • Joined into a domain
[/LIST]



Problem: 

When both machine's are in sync and they become active, one of the machine's goes kernel panic. I've tried to reinstall that machine, join it in the cluster again, and now my other server goes kernel panic.



Messages:

[LIST=1]

  • Kernel panic-  not syncing: Fatal exception
  • Logs show problems with the database. It tells me that the database is dead! 
[/LIST]

  • Added some screens

    HA Cluster log
    2012:04:14-18:31:44 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Access granted to remote node 1!"
    2012:04:14-18:31:47 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Node 1 joined with version 8.930"
    2012:04:14-18:31:47 snake-jailbird-2 ha_daemon[3440]: id="38C0" severity="info" sys="System" sub="ha" name="Node 1 is alive!"
    2012:04:14-18:31:47 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Node 1 changed state: DEAD -> SYNCING"
    2012:04:14-18:31:47 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Node 1 changed mode: WORKER -> SLAVE"
    2012:04:14-18:31:49 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Activating sync process for config on node 1"
    2012:04:14-18:31:50 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Reading cluster configuration"
    2012:04:14-18:31:50 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Deactivating sync process for config on node 1"
    2012:04:14-18:32:00 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Monitoring interfaces for link beat: eth0 eth1 eth2 eth5 "
    2012:04:14-18:32:08 snake-jailbird-2 ha_daemon[3440]: id="38C1" severity="info" sys="System" sub="ha" name="Node 1 is dead, received no heart beats!"
    2012:04:14-18:32:11 snake-jailbird-2 ha_daemon[3440]: id="38A0" severity="info" sys="System" sub="ha" name="Reading cluster configuration"
  • HA Cluster log
    2012:04:14-18:34:54 snake-jailbird-2 postgres[7394]: [3-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:55 snake-jailbird-2 postgres[8204]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:55 snake-jailbird-2 postgres[8188]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:55 snake-jailbird-2 postgres[8200]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:55 snake-jailbird-2 postgres[8202]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:55 snake-jailbird-2 postgres[8203]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:56 snake-jailbird-2 postgres[6572]: [2-1] ERROR:  deadlock detected at character 30
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-5]  Process 8090: drop schema "_asg_cluster" cascade; 
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-6] HINT:  See server log for query details.
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-7] CONTEXT:  SQL statement "SELECT last_value::int4 FROM _asg_cluster.sl_log_status"
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-8]  SQL statement "update accounting set raw_in_pktlen = raw_in_pktlen +  $1 , raw_in_pktcount = raw_in_pktcount +  $2 , raw_out_pktlen = raw_out_pktlen +  $3 , raw_out_pktcount = raw_out_pktcount +  $4 , flow_count = flow_count + 1 where logday =  $5  and srcip =  $6  and dstip =  $7  and l4_dport =  $8  and ip_protocol =  $9  and (srcid =  $10  or (srcid IS NULL and  $10  IS NULL)) and (dstid =  $11  or (dstid IS NULL and  $11  IS NULL)) and afc_proto =  $12 "
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-9]  PL/pgSQL function "ins_accounting" line 20 at SQL statement
    2012:04:14-18:34:56 snake-jailbird-2 postgres[25411]: [2-10] STATEMENT:  select ins_accounting($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-1] ERROR:  deadlock detected at character 30
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-2] DETAIL:  Process 8025 waits for AccessShareLock on relation 41997 of database 16700; blocked by process 8090.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-3]  Process 8090 waits for Acces***clusiveLock on relation 16947 of database 16700; blocked by process 6961.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-4]  Process 6961 waits for ShareLock on transaction 11642; blocked by process 8025.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-5]  Process 8025: select upd_webseccat($1, $2)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-6]  Process 8090: drop schema "_asg_cluster" cascade; 
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-7]  Process 6961: select upd_webseccat($1, $2)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-8] HINT:  See server log for query details.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-9] QUERY:  select last_value::int4 from _asg_cluster.sl_local_node_id
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-10] CONTEXT:  SQL statement "update websec_categories set name =  $1  where category =  $2 "
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-11]  PL/pgSQL function "upd_webseccat" line 2 at SQL statement
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8025]: [2-12] STATEMENT:  select upd_webseccat($1, $2)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8168]: [3-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8222]: [2-1] ERROR:  schema "_asg_cluster" does not exist at character 30
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8222]: [2-2] STATEMENT:  select last_value::int4 from "_asg_cluster".sl_local_node_id
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-1] ERROR:  deadlock detected
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-2] DETAIL:  Process 8090 waits for Acces***clusiveLock on relation 16947 of database 16700; blocked by process 6961.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-3]  Process 6961 waits for ShareLock on transaction 11644; blocked by process 7292.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-4]  Process 7292 waits for AccessShareLock on relation 41997 of database 16700; blocked by process 8090.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-5]  Process 8090: drop schema "_asg_cluster" cascade; 
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-6]  Process 6961: select upd_webseccat($1, $2)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-7]  Process 7292: select upd_webseccat($1, $2)
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-8] HINT:  See server log for query details.
    2012:04:14-18:34:57 snake-jailbird-2 postgres[8090]: [2-9] STATEMENT:  drop schema "_asg_cluster" cascade; 
    2012:04:14-18:34:58 snake-jailbird-2 postgres[8201]: [2-1] LOG:  could not send data to client: Broken pipe
    2012:04:14-18:34:58 snake-jailbird-2 postgres[8201]: [3-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:58 snake-jailbird-2 postgres[8222]: [3-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-1] ERROR:  deadlock detected at character 30
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-2] DETAIL:  Process 6961 waits for AccessShareLock on relation 42003 of database 16700; blocked by process 8225.
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-3]  Process 8225 waits for Acces***clusiveLock on relation 41997 of database 16700; blocked by process 6961.
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-4]  Process 6961: select upd_webseccat($1, $2)
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-5]  Process 8225: DROP SCHEMA IF EXISTS _asg_cluster CASCADE;
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-6] HINT:  See server log for query details.
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-7] QUERY:  SELECT last_value::int4 FROM _asg_cluster.sl_log_status
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-8] CONTEXT:  SQL statement "update websec_categories set name =  $1  where category =  $2 "
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-9]  PL/pgSQL function "upd_webseccat" line 2 at SQL statement
    2012:04:14-18:34:59 snake-jailbird-2 postgres[6961]: [2-10] STATEMENT:  select upd_webseccat($1, $2)
    2012:04:14-18:34:59 snake-jailbird-2 postgres[8237]: [2-1] ERROR:  schema "_asg_cluster" does not exist at character 15
    2012:04:14-18:34:59 snake-jailbird-2 postgres[8237]: [2-2] STATEMENT:  select * from _asg_cluster.sl_trigger
    2012:04:14-18:35:01 snake-jailbird-2 /usr/sbin/cron[8248]: (root) CMD (   /usr/local/bin/reporter/system-reporter.pl)
    2012:04:14-18:35:06 snake-jailbird-2 postgres[8142]: [2-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:35:16 snake-jailbird-2 postgres[8329]: [2-1] ERROR:  schema "_asg_cluster" does not exist at character 30
    2012:04:14-18:35:16 snake-jailbird-2 postgres[8329]: [2-2] STATEMENT:  select last_value::int4 from "_asg_cluster".sl_local_node_id
    2012:04:14-18:35:26 snake-jailbird-2 postgres[8329]: [3-1] LOG:  unexpected EOF on client connection
    2012:04:14-18:35:26 snake-jailbird-2 postgres[8356]: [2-1] ERROR:  schema "_asg_cluster" does not exist at character 30
    2012:04:14-18:35:26 snake-jailbird-2 postgres[8356]: [2-2] STATEMENT:  select last_value::int4 from "_asg_cluster".sl_local_node_id
  • Tested yesterday and I have the same problem with and Active / Passive cluster. One more thing, I'm using KVM as a virtualisation tool. Perhaps this has anything to do with it.
  • I did some more testing, and I can keep 1 node alive, if the other one is dead, and change it. So Node A can exists if Node B is dead, Node B can live if Node A is dead....
  • Hi trixor,

    did you have time to test both active/active and active/passive with a fresh install of 8.940016?

    Cheers,
    Cristof
  • Hi, 

    Yes, I tested it with 2 clean servers. They had equal settings and where virtualized with KVM. 

    Even with Active / Passive I had the same problem. Once both of them where in sync, one of them ended into a kernel panic.
  • How many Uplink Interfaces do you have?

    Cheers
     Ulrich
  • Ok can reproduce the kernel panic now, if the system has two or more dynamic interfaces.
    Thanks for spotting this one!

    Cheers
     Ulrich
  • 3 PPPoE adapters
    2 Eth adapters
    1 HA Adapter
  • Oh great news! Looking forward to a solution, if you need any help, or more information let me know!