karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henning Treu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KARAF-6276) Bundle update results in leaking update*.jar files
Date Tue, 14 May 2019 08:02:00 GMT

    [ https://issues.apache.org/jira/browse/KARAF-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16839186#comment-16839186
] 

Henning Treu commented on KARAF-6276:
-------------------------------------

We found out that the jar updated was indeed this large when deflated without compression
(which is done by  BundleUtils#fixBundleWithUpdateLocation). The issue remaining is that
whatever happened during the bundle update, the file was not removed afterwards. From the
code I can see that this might happen when an exception occurs during bundle update. A solution
might be to move the {{file.delete}} call to a {{finally}} block.

> Bundle update results in leaking update*.jar files
> --------------------------------------------------
>
>                 Key: KARAF-6276
>                 URL: https://issues.apache.org/jira/browse/KARAF-6276
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.2.3
>            Reporter: Henning Treu
>            Priority: Major
>
> We encounter leaking update*.jar files which ultimately result in a full disk. Listing
files shows something like this:
> {quote}-rw-r--r-- 1 root root 458M Apr 28 04:44 update-7283235896174400181.jar
> -rw-r--r-- 1 root root 458M May  5 04:25 update-7296484626001425386.jar
> -rw-r--r-- 1 root root 458M Apr 24 04:20 update-7339530845064123545.jar
> -rw-r--r-- 1 root root 458M Apr 30 04:45 update-7807707341953713899.jar
> -rw-r--r-- 1 root root 458M May  2 04:25 update-8043037041286514887.jar
> -rw-r--r-- 1 root root 458M May  3 04:16 update-8313433533207318564.jar
> -rw-r--r-- 1 root root 458M Apr 27 04:16 update-839710980329827978.jar
> -rw-r--r-- 1 root root 458M Apr 25 04:31 update-8877699798146551228.jar
> {quote}
>  
> As you can tell from the timestamps our update process kicks in somewhere around 4 in
the morning. We call 
> {{URI featureRepo;}}
> {{featuresService.refreshRepository(featureRepo);}}
> {{...}}
> {{EnumSet<Option> NO_OPTIONS = EnumSet.noneOf(Option.class);}}
> {{Map<String, Set<String>> NO_CHANGES = Collections.singletonMap(FeaturesService.ROOT_REGION,
Collections.emptySet());}}
> {{featuresService.addRequirements(NO_CHANGES, NO_OPTIONS);}}
>  
> Both calls to featuresService are guarded by the same ReentrantLock which is released
after each call. Unfortunately we are not able to reproduce this issue. It seems to happen
once in a while. What bothers me is the size of the update.jar with 458MB. From the code I
understand it should be a single bundle.
>  
> The stacktrace when the disk is finally full:
> {quote}org.osgi.framework.BundleException: Unable to update bundle
>  at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.updateBundle(BundleInstallSupportImpl.java:149)
~[?:?]
>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl.updateBundle(FeaturesServiceImpl.java:1139)
~[?:?]
>  at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:834) ~[?:?]
>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058)
~[?:?]
>  at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994)
~[?:?]
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
>  at java.lang.Thread.run(Thread.java:748) [?:?]
> Caused by: java.io.IOException: No space left on device
>  at java.io.FileOutputStream.write(Native Method) ~[?:?]
>  at java.io.FileOutputStream.write(FileOutputStream.java:290) ~[?:?]
>  at java.util.zip.ZipOutputStream.writeInt(ZipOutputStream.java:720) ~[?:?]
>  at java.util.zip.ZipOutputStream.writeLOC(ZipOutputStream.java:391) ~[?:?]
>  at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:238) ~[?:?]
>  at org.apache.karaf.util.bundles.BundleUtils.fixBundleWithUpdateLocation(BundleUtils.java:67)
~[?:?]
>  at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.updateBundle(BundleInstallSupportImpl.java:145)
~[?:?]
>  ... 8 more
> {quote}
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message