core icon indicating copy to clipboard operation
core copied to clipboard

occ files_external:create fails with Oracle

Open phil-davis opened this issue 4 years ago • 1 comments

https://drone.owncloud.com/owncloud/core/34154/122/18

runsh: Total unexpected failed scenarios throughout the test run:
cliExternalStorage/filesExternalWebdavOwncloud.feature:15
cliExternalStorage/filesExternalWebdavOwncloud.feature:32
cliExternalStorage/filesExternalWebdavOwncloud.feature:66
cliExternalStorage/filesExternalWebdavOwncloud.feature:85
cliExternalStorage/filesExternalWebdavOwncloud.feature:106
cliExternalStorage/filesExternalWebdavOwncloud.feature:127
cliExternalStorage/filesExternalWebdavOwncloud.feature:149
cliExternalStorage/filesExternalWebdavOwncloud.feature:172
cliExternalStorage/filesExternalWebdavOwncloud.feature:193
cliExternalStorage/filesExternalWebdavOwncloud.feature:209
cliExternalStorage/filesExternalWebdavOwncloud.feature:229
  Scenario: creating a webdav_owncloud external storage                                                                              # /drone/src/tests/acceptance/features/cliExternalStorage/filesExternalWebdavOwncloud.feature:15
    When the administrator creates an external mount point with the following configuration about user "Alice" using the occ command # OccContext::createExternalMountPointUsingTheOccCommand()
      | host                   | %remote_server%    |
      | root                   | TestMnt            |
      | secure                 | false              |
      | user                   | %username%         |
      | password               | %password%         |
      | storage_backend        | owncloud           |
      | mount_point            | TestMountPoint     |
      | authentication_backend | password::password |
    And the administrator verifies the mount configuration for local storage "TestMountPoint" using the occ command                  # OccContext::theAdministratorVerifiesTheMountConfigurationForLocalStorageUsingTheOccCommand()
    Then the following mount configuration information should be listed:                                                             # OccContext::theFollowingInformationShouldBeListed()
      | status | code | message |
      | ok     | 0    |         |
      OccContext::theFollowingInformationShouldBeListed 'ok, 0, ' was expected to be listed, but is not listed in the mount configuration information
      Failed asserting that two arrays are equal.
      --- Expected
      +++ Actual
      @@ @@
       Array (
      -    'status' => 'ok'
      -    'code' => '0'
      -    'message' => ''
      +    'status' => 'error'
      +    'code' => '1'
      +    'message' => 'InvalidArgumentException'
       )
    And as "admin" folder "TestMountPoint" should exist                                                                              # FeatureContext::asFileOrFolderShouldExist()

  @skipOnEncryption @issue-encryption-181 @skipOnDbOracle @issue-38165
  Scenario: using webdav_owncloud as external storage                                                                                     # /drone/src/tests/acceptance/features/cliExternalStorage/filesExternalWebdavOwncloud.feature:32
    Given the administrator has created an external mount point with the following configuration about user "Alice" using the occ command # OccContext::adminHasCreatedAnExternalMountPointWithFollowingConfigUsingTheOccCommand()
      | host                   | %remote_server%    |
      | root                   | TestMnt            |
      | secure                 | false              |
      | user                   | %username%         |
      | password               | %password%         |
      | storage_backend        | owncloud           |
      | mount_point            | TestMountPoint     |
      | authentication_backend | password::password |
      The command was not successful, exit code was 1.
      stdOut was: ''
      stdErr was: '
      In AbstractOracleDriver.php line 61:

        An exception occurred while executing 'INSERT INTO "oc_external_config" ("m  
        ount_id","key","value") SELECT ?,?,? FROM "oc_external_config" WHERE "mount  
        _id" = ? AND "key" = ? HAVING COUNT(*) = 0' with params [2, "secure", false  
        , 2, "secure"]:                                                              

        ORA-01400: cannot insert NULL into ("AUTOTEST"."oc_external_config"."value")                                                                            

      In OCI8Exception.php line 25:

        ORA-01400: cannot insert NULL into ("AUTOTEST"."oc_external_config"."value")                                                                            

      files_external:create [--user [USER]] [-c|--config CONFIG] [--dry] [--output [OUTPUT]] [--] <mount_point> <storage_backend> <authentication_backend>
      '
       (Exception)

phil-davis avatar Jan 07 '22 05:01 phil-davis

PR #39637 demonstrates the issue.

The first few scenarios have been in the test suite for some time. They were added by PR #36857 which was merged 2020-02-18. And PR #37025 was run on 2020-02-27 and those passed on Oracle. So I think that this passed previously.

Needs investigation...

phil-davis avatar Jan 07 '22 05:01 phil-davis