[JBoss JIRA] (JBTM-2730) Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
by Ondra Chaloupka (JIRA)
[ https://issues.jboss.org/browse/JBTM-2730?page=com.atlassian.jira.plugin.... ]
Ondra Chaloupka updated JBTM-2730:
----------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/jbosstm/narayana/pull/1047
> Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
> -------------------------------------------------------------------------------------------------------------------
>
> Key: JBTM-2730
> URL: https://issues.jboss.org/browse/JBTM-2730
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Affects Versions: 5.3.3.Final
> Reporter: Ondra Chaloupka
> Assignee: Ondra Chaloupka
>
> Narayana uses system default encoding when encode and decode data for object store. This could be a trouble if user uses non-ASCII characters for node identifier and object store is meanwhile moved between machines with different default encodings.
> I've currently revealed two cases which could cause a trouble:
> * node id set as {{...}} _(there is needed to use some characters which are encoded in UTF-8 as more bytes characters)_ will let container being started for encoding ISO-8859-1 and won't be started for encoding UTF-8. That's when configuration moved from ISO-8859-1 machine to UTF-8 machine when the another machine will be expected to finish recovery of some failed txn the second machine fails to start. (sure, workaround is to set jvm default encoding via parameter {{-Dfile.encoding}})
> * node id set to {{kulaťoučký}}, whole eap installation moved from one machine with ISO-8859-1 to machine with default encoding set to UTF-8. Txn object store is copied too for second machine finishing in-doubt transaction by recovery. The second machine won't finish transactions which depends on node identifer check (bottom-up recovery) as node id will be decoded differently than it was understood at the first machine.
> This issue was found by using static code analysis and reacts to report message
> {code}
> 21994 Dm: Dubious method used In org.jboss.narayana.osgi.jta.internal.ObjStoreBrowserImpl.ObjStoreBrowserImpl (com.arjuna.ats.arjuna.tools.osb.mbean.ObjStoreBrowser): Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (JBTM-2632) Allow the setting of an initial delay in PeriodRecovery
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-2632?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson closed JBTM-2632.
-------------------------------
Fix Version/s: (was: 5.next)
Resolution: Duplicate Issue
Duplicate of: https://issues.jboss.org/browse/JBTM-2720
> Allow the setting of an initial delay in PeriodRecovery
> -------------------------------------------------------
>
> Key: JBTM-2632
> URL: https://issues.jboss.org/browse/JBTM-2632
> Project: JBoss Transaction Manager
> Issue Type: Enhancement
> Components: Recovery
> Reporter: Matthew Robson
> Assignee: Tom Jenkinson
>
> Currently Periodic Recovery kicks off at the same interval on every server. As a domain mode cluster grows in size, this leads to significant contention in the DB, especially for RAC implementations. Completion time goes from milliseconds with 1 server to 20+ seconds with 20+ servers.
> In an effort to avoid this, an offset the initial start of Periodic Recovery could be provided for the nodes in the cluster.
> Periodic Recovery currently leverages 2 properties:
> <system-properties>
> <property name="RecoveryEnvironmentBean.periodicRecoveryPeriod" value="120"/>
> <property name="RecoveryEnvironmentBean.recoveryBackoffPeriod" value="10"/>
> </system-properties>
> The proposal would be to add a 3rd property, 'RecoveryEnvironmentBean.periodicRecoveryInitilizationOffset' which, when set, would be used for each node. If not set, it would default to current behavior.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (JBTM-2730) Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
by Ondra Chaloupka (JIRA)
[ https://issues.jboss.org/browse/JBTM-2730?page=com.atlassian.jira.plugin.... ]
Ondra Chaloupka updated JBTM-2730:
----------------------------------
Affects Version/s: 5.3.3.Final
> Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
> -------------------------------------------------------------------------------------------------------------------
>
> Key: JBTM-2730
> URL: https://issues.jboss.org/browse/JBTM-2730
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Affects Versions: 5.3.3.Final
> Reporter: Ondra Chaloupka
> Assignee: Ondra Chaloupka
>
> Narayana uses system default encoding when encode and decode data for object store. This could be a trouble if user uses non-ASCII characters for node identifier and object store is meanwhile moved between machines with different default encodings.
> I've currently revealed two cases which could cause a trouble:
> * node id set as {{...}} _(there is needed to use some characters which are encoded in UTF-8 as more bytes characters)_ will let container being started for encoding ISO-8859-1 and won't be started for encoding UTF-8. That's when configuration moved from ISO-8859-1 machine to UTF-8 machine when the another machine will be expected to finish recovery of some failed txn the second machine fails to start. (sure, workaround is to set jvm default encoding via parameter {{-Dfile.encoding}})
> * node id set to {{kulaťoučký}}, whole eap installation moved from one machine with ISO-8859-1 to machine with default encoding set to UTF-8. Txn object store is copied too for second machine finishing in-doubt transaction by recovery. The second machine won't finish transactions which depends on node identifer check (bottom-up recovery) as node id will be decoded differently than it was understood at the first machine.
> This issue was found by using static code analysis and reacts to report message
> {code}
> 21994 Dm: Dubious method used In org.jboss.narayana.osgi.jta.internal.ObjStoreBrowserImpl.ObjStoreBrowserImpl (com.arjuna.ats.arjuna.tools.osb.mbean.ObjStoreBrowser): Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (JBTM-2730) Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
by Ondra Chaloupka (JIRA)
[ https://issues.jboss.org/browse/JBTM-2730?page=com.atlassian.jira.plugin.... ]
Ondra Chaloupka reassigned JBTM-2730:
-------------------------------------
Assignee: Ondra Chaloupka
> Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
> -------------------------------------------------------------------------------------------------------------------
>
> Key: JBTM-2730
> URL: https://issues.jboss.org/browse/JBTM-2730
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Reporter: Ondra Chaloupka
> Assignee: Ondra Chaloupka
>
> Narayana uses system default encoding when encode and decode data for object store. This could be a trouble if user uses non-ASCII characters for node identifier and object store is meanwhile moved between machines with different default encodings.
> I've currently revealed two cases which could cause a trouble:
> * node id set as {{...}} _(there is needed to use some characters which are encoded in UTF-8 as more bytes characters)_ will let container being started for encoding ISO-8859-1 and won't be started for encoding UTF-8. That's when configuration moved from ISO-8859-1 machine to UTF-8 machine when the another machine will be expected to finish recovery of some failed txn the second machine fails to start. (sure, workaround is to set jvm default encoding via parameter {{-Dfile.encoding}})
> * node id set to {{kulaťoučký}}, whole eap installation moved from one machine with ISO-8859-1 to machine with default encoding set to UTF-8. Txn object store is copied too for second machine finishing in-doubt transaction by recovery. The second machine won't finish transactions which depends on node identifer check (bottom-up recovery) as node id will be decoded differently than it was understood at the first machine.
> This issue was found by using static code analysis and reacts to report message
> {code}
> 21994 Dm: Dubious method used In org.jboss.narayana.osgi.jta.internal.ObjStoreBrowserImpl.ObjStoreBrowserImpl (com.arjuna.ats.arjuna.tools.osb.mbean.ObjStoreBrowser): Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (JBTM-2730) Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
by Ondra Chaloupka (JIRA)
Ondra Chaloupka created JBTM-2730:
-------------------------------------
Summary: Moving txn datastore to machine with different default encoding can cause in-doubt participants not being recovered
Key: JBTM-2730
URL: https://issues.jboss.org/browse/JBTM-2730
Project: JBoss Transaction Manager
Issue Type: Bug
Reporter: Ondra Chaloupka
Narayana uses system default encoding when encode and decode data for object store. This could be a trouble if user uses non-ASCII characters for node identifier and object store is meanwhile moved between machines with different default encodings.
I've currently revealed two cases which could cause a trouble:
* node id set as {{...}} _(there is needed to use some characters which are encoded in UTF-8 as more bytes characters)_ will let container being started for encoding ISO-8859-1 and won't be started for encoding UTF-8. That's when configuration moved from ISO-8859-1 machine to UTF-8 machine when the another machine will be expected to finish recovery of some failed txn the second machine fails to start. (sure, workaround is to set jvm default encoding via parameter {{-Dfile.encoding}})
* node id set to {{kulaťoučký}}, whole eap installation moved from one machine with ISO-8859-1 to machine with default encoding set to UTF-8. Txn object store is copied too for second machine finishing in-doubt transaction by recovery. The second machine won't finish transactions which depends on node identifer check (bottom-up recovery) as node id will be decoded differently than it was understood at the first machine.
This issue was found by using static code analysis and reacts to report message
{code}
21994 Dm: Dubious method used In org.jboss.narayana.osgi.jta.internal.ObjStoreBrowserImpl.ObjStoreBrowserImpl (com.arjuna.ats.arjuna.tools.osb.mbean.ObjStoreBrowser): Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable)
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months