[ 
https://issues.apache.org/jira/browse/AVRO-524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thiruvalluvan M. G. updated AVRO-524:
-------------------------------------

    Attachment: AVRO-524.patch

The simple solution is to open the FileOutputStream in append mode from the 
filename rather than the FileDescriptor. Since its FileDescriptor is not going 
to be used for writing anymore, the RandomAccessFile can now be opened in "r" 
mode instead of "rw".

> DataFileWriter.appendTo leads to intermittent IOException during write()
> ------------------------------------------------------------------------
>
>                 Key: AVRO-524
>                 URL: https://issues.apache.org/jira/browse/AVRO-524
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>            Reporter: Thiruvalluvan M. G.
>            Assignee: Thiruvalluvan M. G.
>             Fix For: 1.4.0
>
>         Attachments: AVRO-524.patch
>
>
> To append to a data file, we first open the file as RandomAccessFile in 
> read-write mode, read some information such sync, seek to the end of the file 
> and then use its FileDescriptor to create a FileOutputStream. Sharing a 
> FileDescriptor this way could lead to problem if one of its containers is 
> garbage-collected while the other is still in use. Please see: 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322678. The bug got fixed 
> in Java 7 (b06). In our case, RandomAccessFile sometimes gets 
> garbage-collected leading to write errors. If the Java unit-tests are run 
> multiple times, this occurs about 25% of the time on my Windows machine and 
> about 50% on my Ubuntu Linux box.

-- 
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