cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Morton (JIRA)" <j...@apache.org>
Subject [jira] Created: (CASSANDRA-1557) ColumnFamilyStore masking IOException from FileUtils as IOError
Date Wed, 29 Sep 2010 08:03:33 GMT
ColumnFamilyStore masking IOException from FileUtils as IOError
---------------------------------------------------------------

                 Key: CASSANDRA-1557
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1557
             Project: Cassandra
          Issue Type: Bug
          Components: API
    Affects Versions: 0.7 beta 2
            Reporter: Aaron Morton
            Priority: Minor


The code in ColumnFamilyStore.snapshot() line 1368 is catching an IOException from the call
to FileUtils.createHardLink() and wrapping it in an IOError. However the code in TruncateVerbHandler:56
is looking for the IOException. This can result  in the client not getting a response to a
truncate() API call. 

When running on a machine with very low memory I attempted to truncate a CF with few rows,
the following error occurred in the logs.

ERROR [MUTATION_STAGE:25] 2010-09-29 16:44:39,341 AbstractCassandraDaemon.java (line 88) Fatal
exception in thread Thread[MUTATION_STAGE:25,5,main]
java.io.IOError: java.io.IOException: Cannot run program "ln": java.io.IOException: error=12,
Cannot allocate memory
        at org.apache.cassandra.db.ColumnFamilyStore.snapshot(ColumnFamilyStore.java:1368)
        at org.apache.cassandra.db.ColumnFamilyStore.truncate(ColumnFamilyStore.java:1511)
        at org.apache.cassandra.db.Table.truncate(Table.java:633)
        at org.apache.cassandra.db.TruncateVerbHandler.doVerb(TruncateVerbHandler.java:54)
        at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:50)
        at javautil.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Cannot run program "ln": java.io.IOException: error=12, Cannot
allocate memory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
        at org.apache.cassandra.io.util.FileUtils.createHardLinkWithExec(FileUtils.java:263)
        at org.apache.cassandra.io.util.FileUtils.createHardLink(FileUtils.java:229)
        at org.apache.cassandra.db.ColumnFamilyStore.snapshot(ColumnFamilyStore.java:1360)
        ... 7 more
Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
        at java.lang.ProcessImpl.start(ProcessImpl.java:65)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
        ... 10 more

On the client I got this:

  File "/tech/home//git_home/trojan/trojan/cassandra/Cassandrapy", line 846, in truncate
    self.recv_truncate()
  File "/tech/home//git_home/trojan/trojan/cassandra/Cassandra.py", line 857, in recv_truncate
    (fname, mtype, rseqid) = self._iprot.readMessageBegin()
  File "/tech/home//git_home/trojan/trojan/thrift/protocol/TBinaryProtocol.py", line 126,
in readMessageBegin
    sz = self.readI32()
<snip>
    chunk = self.read(sz-have)
  File "/tech/home//git_home/trojan/trojan/thrift/transport/TSocket.py", line 92, in read
    buff = self.handle.recv(sz)
timeout: timed out

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


Mime
View raw message