Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-4254

Investigate: Why is pending apps plug-in repository failing

    Details

    • Type: Task
    • Status: Merged Needs Testing (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      2
    • Sprint:
      Fall 1, Summer 3, Summer 4, Summer 5, Summer 6, Fall 2, Fall 3, Fall 4, Fall 5, Fall 6, Fall 7, Fall 8, Fall 9, Spring 4

      Description

      The IGB App Store is meant to allow app developers to upload and their submit their IGB app for review by the site maintainers.

      When a user submits an app for review, the site maintainers receive an email notification. This part works great.

      Next, the reviewer of a new app is supposed to test the new app by installing it and running it in the version of IGB that the developer has written their app for.

      To do this, the reviewer opens IGB and does the following steps:

      • Select Tools > App Manager
      • Click Manage Repositories button (top right) to open the Plugin Repositories screen of the Preferences window
      • Checks "Enabled" for the Pending Aps Plugin Repository (It has URL https://apps.bioviz.org/obr/pending_releases)

      One kind of cool thing is that if you visit this URL in your Web browser, the App Store will display a nice page that lets you download and view the "repository.xml" file for the App Store's pending apps end point.

      If you do this, you will observe that there is (as of today) one pending app, an app submitted by Karthik Raveendran - the "Downsampler App" which is currently at version 0.0.0 and is not yet released on the App Store. (That is, it's not available for wider use in the IGB user community.)

      However, the pending apps endpoint is not working as expected! What is supposed to happen is that when the reviewer enables the Pending Apps Plugin Repository, they should see that the App Manager now shows the Pending Apps repository's apps as options for installation. Then, the reviewer should be able to install the App and test it.

      What is happening instead is that if you try to install the app in the usual way, it will appear to be installed in the App Manager but the App will not actually be installed. Instead, an error appears in the IGB Log:

      12:40:23.649 INFO o.l.i.p.manager.AppManagerFxPanel - Installing plugin: Downsampler Filter
      ERROR: Resolver: Install error - Downsampler-Filter
      java.io.IOException: Error accessing https://apps.bioviz.org/installapp/pending_releases/pending_releases/Downsampler-Filter-0.0.0.jar
      at org.apache.felix.bundlerepository.impl.FileUtil.openURL(FileUtil.java:217)
      at org.apache.felix.bundlerepository.impl.FileUtil.openURL(FileUtil.java:199)
      at org.apache.felix.bundlerepository.impl.ResolverImpl.deploy(ResolverImpl.java:575)
      at org.lorainelab.igb.plugin.manager.BundleActionManager.installBundle(BundleActionManager.java:173)
      at org.lorainelab.igb.plugin.manager.BundleActionManager$1.get(BundleActionManager.java:149)
      at org.lorainelab.igb.plugin.manager.BundleActionManager$1.get(BundleActionManager.java:139)
      at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
      at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
      at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
      at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
      at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
      at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
      Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: https://apps.bioviz.org/installapp/pending_releases/pending_releases/Downsampler-Filter-0.0.0.jar
      at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2011)
      at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1602)
      at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
      at org.apache.felix.bundlerepository.impl.FileUtil.openURL(FileUtil.java:209)
      ... 12 more

      I logged into the App Store and also looked at the S3 bucket the App Store uses to store pending and released apps. Everything looked fine and correct, so I am not sure what the problem is here.

      For this task, please investigate what is occurring. To start, I would create a simple App that is not already released on App store to submit and use for testing, just to check to see if there was a problem with Karthik Raveendran's app – which I don't think is the case, but this would be a good place to start.

      Just be aware that if you submit a new version of an existing released app, it will not enter a pending status but instead will be released right away. So, to test this issue, you really need an entirely new, unreleased app to use for testing.

        Attachments

          Issue Links

            Activity

            Hide
            ann.loraine Ann Loraine added a comment -

            Please check the PR. The current target is "master branch" in your fork, not the team repository. Thus, I cannot merge it.

            Show
            ann.loraine Ann Loraine added a comment - Please check the PR. The current target is "master branch" in your fork, not the team repository. Thus, I cannot merge it.
            Show
            sjagarap saideepthi jagarapu (Inactive) added a comment - Sorry for that, Please review this Ann Loraine https://bitbucket.org/lorainelab/appstore/pull-requests/286
            Hide
            ann.loraine Ann Loraine added a comment -

            PR is merged. Ready for testing.

            Show
            ann.loraine Ann Loraine added a comment - PR is merged. Ready for testing.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Additional PR is merged. Note this deletes the following code block from obr/repogen.py:

                if state == 'pending':
                    current_resource.set('uri', '/installapp/pending_releases/' + dict_ver.release_file.name)
                else:
            

            Request for saideepthi jagarapu: Please confirm this is what you wanted?

            Show
            ann.loraine Ann Loraine added a comment - - edited Additional PR is merged. Note this deletes the following code block from obr/repogen.py: if state == 'pending': current_resource.set('uri', '/installapp/pending_releases/' + dict_ver.release_file.name) else : Request for saideepthi jagarapu : Please confirm this is what you wanted?
            Hide
            sjagarap saideepthi jagarapu (Inactive) added a comment -

            Yes Ann Loraine, you are right!

            Show
            sjagarap saideepthi jagarapu (Inactive) added a comment - Yes Ann Loraine , you are right!

              People

              • Assignee:
                Unassigned
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: