[Linux-ha-dev] Re: [Linux-HA] heartbeat v2 with serial cable

Alan Robertson alanr at unix.sh
Fri Aug 19 08:19:27 MDT 2005


Guochun Shi wrote:
> At 11:37 AM 8/17/2005 -0600, Alan Robertson wrote:
>>Guochun Shi wrote:
>>>Since everything works fine except the error message from serial cable, I assume you have other communication media (probably ethernet) configured.
>>>The problem looks like the serial cable cannot handle big messages, i.e. cib messages. 
>>>I think we should not try to send big messages through seiral port. Heartbeat need to detect that and silently drop them for serial port --- but if there is only one media configured, heartbeat then gives a warning/error
>>>-Guochun
>>>At 08:21 AM 8/17/2005 +0200, you wrote:
>>>>Hello,
>>>>
>>>>I've installed heartbeat v2 on two machines (HP ProLiant ML110). The nodes
>>>>are connected via 1Gb network (cross cable) and a null modem cable.
>>>>Furthermore are two interfaces on each node for different networks installed.
>>>>
>>>>I've configured heartbeat to use crm. Whenever I update the CIB I get
>>>>error messages on the non DC node like this
>>>>
>>>>Aug 16 16:01:34 elmgt2 cibmon: [3448]: info: mask(cib_apply_diff): +   </status>
>>>>Aug 16 16:01:34 elmgt2 cibmon: [3448]: info: mask(cib_apply_diff): + </cib>
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: NV failure (string2msg_ll):
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: Input string: [>>> __name__=cib_fragment section=status (2)cib=>>>^U__name__=cib^U(2)configuration=>>>^V__name__=configuration^V__parent__=1^V(2)crm_config=>>>^W__name__=crm_config^W__parent__=1^W<<<^W^V(2)nodes=>>>^W__name__=nodes^W__parent__=1^W<<<^W^V(2)resources=>>>^W__name__=resources^W__parent__=1^W<<<^W^V(2)constraints=>>>]
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: sp=(2)cib=>>>^U__name__=cib^U(2)configuration=>>>^V__name__=configuration^V__parent__=1^V(2)crm_config=>>>^W__name__=crm_config^W__parent__=1^W<<<^W^V(2)nodes=>>>^W__name__=nodes^W__parent__=1^W<<<^W^V(2)resources=>>>^W__name__=resources^W__parent__=1^W<<<^W^V(2)constraints=>>>
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: string2struct(): string2msg_ll failed
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: add_string_field: stringtofield failed
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: ha_msg_addraw_ll: addfield failed
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: ha_msg_addraw(): ha_msg_addraw_ll failed
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: NV failure (string2msg_ll):
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: Input string: [>>> origin=finalize_join_for t=crmd version=1.0 subt=request reference=join_ack_nack-dc-1124200892-19 crm_task=join_ack_nack crm_sys_to=crmd crm_sys_from=dc crm_host_to=elmgt1 join_id=2 join_ack_>>> origin=do_cl_join_result t=crmd version=1.0 subt=request reference=join_confirm-crmd-1124200892-22 crm_task=join_confirm crm_sys_to=dc crm_sys_from=crmd crm_host_to=elmgt1 (2)crm_xml=>>>^T__name__=cib_fragment^Tsection=status^T(2)cib=>>>^U__name__=cib^U(2)configuration=>>>^V__name__=configuration^V__par
>>>>Aug 16 16:01:36 elmgt2 heartbeat: [3427]: ERROR: sp=(2)crm_xml=>>>^T__name__=cib_fragment^Tsection=status^T(2)cib=>>>^U__name__=cib^U(2)configuration=>>>^V__name__=configuration^V__parent__=1^V(2)crm_config=>>>^W__name__=crm_config^W__parent__=1^W<<<^W^V(2)nodes=>>>^W__name__=nodes^W__parent__=1^W<<<^W^V(2)resources=>>>^W__name__=resources^W__parent__=1^W<<<^W^V(2)constraints=>>> t=cib cib_clientid=28134ac3-b48b-4c32-a1aa-19786a06701 cib_callopt=1048576 cib_callid=20 cib_op=cib_apply_diff cib_update=true (2)cib_update_diff=>>>^T__name__=diff^T(2)diff-removed=>>>^U__name__=diff-re
>>>>Aug 16 16:01:37 elmgt2 heartbeat: [3427]: ERROR: NV failure (string2msg_ll):
>>>>Aug 16 16:01:37 elmgt2 heartbeat: [3427]: ERROR: Input string: [>>> __name__=diff (2)diff-removed=>>>^U__name__=diff-removed^U__parent__=1^U(2)cib=>>>^V__name__=cib^Vnum_updates=904^V(2)statu>>>]
>>>Since everything works fine except the error message from serial cable, I assume you have other communication media (probably ethernet) configured.
>>>The problem looks like the serial cable cannot handle big messages, i.e. cib messages. 
>>>I think we should not try to send big messages through seiral port. Heartbeat need to detect that and silently drop them for serial port --- but if there is only one media configured, heartbeat then gives a warning/error
>>>-Guochun
>>
>>The packet had to be intact or this couldn't have happened.  It sounds more like a bug of some kind to me...
> 
> serial port cannot handle a message with several Kbytes, so there are bytes lost. Of course string2msg will fail.

But it will fail verification before you got this far.

That would be a totally different set of messages.


-- 
     Alan Robertson <alanr at unix.sh>

"Openness is the foundation and preservative of friendship...  Let me 
claim from you at all times your undisguised opinions." - William 
Wilberforce


More information about the Linux-HA mailing list