apache / openwhisk

Apache OpenWhisk is an open source serverless cloud platform
https://openwhisk.apache.org/
Apache License 2.0
6.54k stars 1.17k forks source link

Asset cleaner failures #1856

Closed RSulzmann closed 4 years ago

RSulzmann commented 7 years ago

In a unit testcase, intermittent failures occur when cleaning up a package containing an action. error: Package delete failed: Package not empty (contains 1 entity) (code 2972066) exit code: 153 was not equal to 0

exception : org.scalatest.exceptions.TestFailedException: deletedAll was false some assets were not deleted at org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500) at org.scalatest.FlatSpec.newAssertionFailedException(FlatSpec.scala:1683) at org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466) at common.WskTestHelpers$class.withAssetCleaner(WskTestHelpers.scala:105) at system.basic.WskBasicTests.withAssetCleaner(WskBasicTests.scala:38) at system.basic.WskBasicTests$$anonfun$7.apply$mcV$sp(WskBasicTests.scala:115)

In the file WskTestHelpers.scala the function withAssetCleaner should also include a retry ...

            val deletedAll = assetsToDeleteAfterTest.reverse map {
                case ((cli, n, delete)) => n -> Try {
                    if (delete) {
                        cli.delete(n)(wskprops)
                    } else {
                        cli.sanitize(n)(wskprops)
                    }
                }

similar like in class AssetCleaner :

                            // operation that requires a retry for eventual consistency
                            whisk.utils.retry({
                                cli.sanitize(name)(wskprops)
                            }, 5, Some(1 second))
rabbah commented 7 years ago

going to close https://github.com/openwhisk/openwhisk/issues/1588 as duplicate.

rabbah commented 7 years ago

Fixed with https://github.com/openwhisk/openwhisk/pull/1943.

eweiter commented 7 years ago

This issue appears to be happening again. Earlier today a health build failed multiple times (not successively) due to seemingly this error, where it tried to delete a package but the package deletion failed because it still contained an action within it.

The last failure was in the test "system.basic.WskConsoleTests.Wsk Activation Console should show an activation log message for hello world" where it failed due to: ERROR: deleting asset failed for samples: org.scalatest.exceptions.TestFailedException: wsk -i --apiversion v1 package delete --auth ... /_/samples error: Unable to delete package 'samples': Package not empty (contains 1 entity) (code xxx) exit code: 153 was not equal to 0

A couple builds before the above failure the test "system.basic.WskPackageTests.Wsk Package should perform package binds so parameters are inherited" failed due to: Starting test Wsk Package should perform package binds so parameters are inherited at 2017-04-21 16:27:03.146 ERROR: deleting asset failed for package1: org.scalatest.exceptions.TestFailedException: wsk -i --apiversion v1 package delete --auth ... /_/package1 error: Unable to delete package 'package1': Package not empty (contains 1 entity) (code xxx) exit code: 153 was not equal to 0