ReadRecord.readChar giving IOException on clusterd MySQL installtion
--------------------------------------------------------------------

                 Key: JCR-914
                 URL: https://issues.apache.org/jira/browse/JCR-914
             Project: Jackrabbit
          Issue Type: Bug
          Components: core
    Affects Versions: 1.3
         Environment: OSX 10.4.x, JDK 1.5, Tomcat 5.5.16 (not important 
probably), SpringFramework (1.2.8, not important ?) 
MySQL 5.0.18, MySQL JConnector 3.1.12
            Reporter: Ian Boston


With a Journal setup like
 <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
    <param name="revision" value="${rep.home}/revision.log" />
    <param name="driver" value="com.mysql.jdbc.Driver" />
    <param name="url" 
value="jdbc:mysql://127.0.0.1:3306/sakai22?useUnicode=true&amp;characterEncodi
ng=UTF-8" />
    <param name="user" value="sakai22"/>
    <param name="password" value="sakai22"/>
  </Journal>

2 Nodes in the cluster both on the same machine, (seperate JVM's)
All persistance managers using the same MySQL DB,

Then I connect a webDAV client to one node and upload about 300Mb of data, 
which all works perfectly on the node I am connected to.

On the other node in the cluster I see a lot of the following tracebacks. The 
Revisions are not in sequence indicateing that most are Ok, and the tracebacks 
continue untill all activity (including indexing has finished)

ERROR: Unable to read revision '48'. (2007-05-13 09:27:24,209 
ClusterNode-localhost1_org.apache.jackrabbit.core.cluster.ClusterNode)
org.apache.jackrabbit.core.journal.JournalException: I/O error while reading 
character.
        at 
org.apache.jackrabbit.core.journal.ReadRecord.readChar(ReadRecord.java:121)
        at 
org.apache.jackrabbit.core.cluster.ClusterNode.consume(ClusterNode.java:875)
        at 
org.apache.jackrabbit.core.journal.AbstractJournal.doSync(AbstractJournal.java:191)
        at 
org.apache.jackrabbit.core.journal.AbstractJournal.sync(AbstractJournal.java:166)
        at 
org.apache.jackrabbit.core.cluster.ClusterNode.sync(ClusterNode.java:283)
        at 
org.apache.jackrabbit.core.cluster.ClusterNode.run(ClusterNode.java:254)
        at java.lang.Thread.run(Thread.java:613)
Caused by: java.io.EOFException
        at java.io.DataInputStream.readChar(DataInputStream.java:333)
        at 
org.apache.jackrabbit.core.journal.ReadRecord.readChar(ReadRecord.java:118)
        ... 6 more


Looking at the Code in that area, the for loop exists on a null char '\0'. It 
might be possible that the MySQL driver or table setup is truncating null chars 
giving rise to the errors.

The idle node that is creating the errors otherwise looks perfect and the 
content appears on the idle node within a second or so of being uploaded on the 
active node.

(I am uploading using a webDav mount in OSX Finder)

I will try with the FileJournal just to check that its not a MySQL or JDBC 
driver issue.


 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to