update on memory leak

Finished applying to S3 the change that fixed the memory leak in bup, but
it didn't seem to help S3.. with encryption it still grows to 2x file size.
This commit is contained in:
Joey Hess 2011-04-19 16:31:35 -04:00
parent 030c7a056b
commit 4837176897
2 changed files with 6 additions and 8 deletions

View file

@ -99,22 +99,19 @@ s3Setup u c = do
store :: Remote Annex -> Key -> Annex Bool
store r k = s3Action r False $ \(conn, bucket) -> do
content <- lazyKeyContent k
g <- Annex.gitRepo
content <- liftIO $ L.readFile $ gitAnnexLocation g k
res <- liftIO $ storeHelper (conn, bucket) r k content
s3Bool res
storeEncrypted :: Remote Annex -> (Cipher, Key) -> Key -> Annex Bool
storeEncrypted r (cipher, enck) k = s3Action r False $ \(conn, bucket) -> do
content <- lazyKeyContent k
res <- liftIO $ withEncryptedContent cipher (return content) $ \s -> do
g <- Annex.gitRepo
let f = gitAnnexLocation g k
res <- liftIO $ withEncryptedContent cipher (L.readFile f) $ \s -> do
storeHelper (conn, bucket) r enck s
s3Bool res
lazyKeyContent :: Key -> Annex L.ByteString
lazyKeyContent k = do
g <- Annex.gitRepo
liftIO $ L.readFile $ gitAnnexLocation g k
storeHelper :: (AWSConnection, String) -> Remote Annex -> Key -> L.ByteString -> IO (AWSResult ())
storeHelper (conn, bucket) r k content = do
let object = setStorageClass storageclass $ bucketKey bucket k content

View file

@ -2,6 +2,7 @@ S3 has two memory leaks.
One only occurs with encryption. It was was fixed for bup, but
not yet for S3, in 5985acdfad8a6791f0b2fc54a1e116cee9c12479.
(The fix I used for bup doesn't seem to work with S3.)
The other occurs independant of encryption use. Copying a 100 mb
file to S3 causes an immediate sharp memory spike to 119 mb.