nextcloud / nextcloud/workflow_script

Workflow script called multiple times

オープン
#43 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

0. Needs triage bug
主要言語
PHP
スター
89
フォーク
19
平均マージ
6時間 38分
マージ済み PR(30日)
3

説明

Steps to reproduce

Context: I'm wanting to create a script to automatically convert videos. I wasn't seeing my script get triggered so I added 2 workflows for testing and had the script just log information when I noticed odd behavior. This is what I found.

  1. Install a vanilla nextcloud/vm instance of NextCloud
  2. Enable Workflow
  3. Add a workflow script on file upload (i.e. creation):
    • When: File Created
    • and User group membership is member of Users
    • Run script: nc_video_converter upload %e %n %f
      4.Add a workflow script on tag:
    • When: Tag assigned
    • and User group membership is member of Users
    • Run script: nc_video_converter tag %e %n %f
  4. Create a nc_video_converter script on the server
    • sudo vim /usr/bin/nc_video_converter
      #!/bin/bash
      echo "Running converter..." >> /var/log/nc_video_converter
      echo "$@" >> /var/log/nc_video_converter
      
    • sudo chmod +x /usr/bin/nc_video_converter
    • (not sure if this is needed?) sudo chown www-data:www-data /usr/bin/nc_video_converter
  5. Create a user assigned to the Users group
  6. Login as that user and upload a file
  7. Notice the /var/log/nc_video_converter file shows:
    Running converter...
    tag OCP\SystemTag\ISystemTagObjectMapper::assignTags /myusername/files/Screen Shot 2020-04-02 at 4.02.43 PM.png /tmp/oc_tmp_6Z7GGl-.png
    Running converter...
    upload OCP\SystemTag\ISystemTagObjectMapper::assignTags /myusername/files/Screen Shot 2020-04-02 at 4.02.43 PM.png /tmp/oc_tmp_XjOYL4-.png
    
  8. Add a tag to a file
  9. Notice the /var/log/nc_video_converter file shows:
    Running converter...
    tag \OCP\Files::postCreate /myusername/files/Screen Shot 2020-04-02 at 4.02.33 PM.png /tmp/oc_tmp_Jd9L2p-.png
    Running converter...
    upload \OCP\Files::postCreate /myusername/files/Screen Shot 2020-04-02 at 4.02.33 PM.png /tmp/oc_tmp_5evyop-.png
    
Expected behaviour

I expect that when I upload a file that only the workflow for the file upload would be triggered.

I expect that when I tag a file that only the workflow for the tag would be triggered.

Actual behaviour

When I upload a file both the file upload AND the tag workflows were triggered. Interestingly, though, you can see that both workflows printed the same event name: OCP\SystemTag\ISystemTagObjectMapper::assignTags.

When I tag a file both both workflows were triggered. Interestingly, both workflows printed the same event name \OCP\Files::postCreate.

Workflow Script app

Workflow Script app version: 1.3.1

Server configuration

Operating system: Ubuntu 18.04 LTS (Linux ubuntu-bionic 4.15.0-91-generic)

Web server: Apache

Database: PostgreSQL

PHP version: PHP 7.2.24-0ubuntu0.18.04.3 (cli)

Nextcloud Version: 18.0.3

Where did you install Nextcloud from: github.com/nextcloud/vm using the virtualbox example

Signing status:

No errors have been found.

List of activated apps:

Enabled:
  - accessibility: 1.4.0
  - activity: 2.11.0
  - admin_audit: 1.8.0
  - cloud_federation_api: 1.1.0
  - comments: 1.8.0
  - dav: 1.14.0
  - federatedfilesharing: 1.8.0
  - federation: 1.8.0
  - files: 1.13.1
  - files_pdfviewer: 1.7.0
  - files_rightclick: 0.15.2
  - files_sharing: 1.10.1
  - files_trashbin: 1.8.0
  - files_versions: 1.11.0
  - files_videoplayer: 1.7.0
  - firstrunwizard: 2.7.0
  - logreader: 2.3.0
  - lookup_server_connector: 1.6.0
  - nextcloud_announcements: 1.7.0
  - notifications: 2.6.0
  - oauth2: 1.6.0
  - password_policy: 1.8.0
  - photos: 1.0.0
  - privacy: 1.2.0
  - provisioning_api: 1.8.0
  - recommendations: 0.6.0
  - serverinfo: 1.8.0
  - settings: 1.0.0
  - sharebymail: 1.8.0
  - support: 1.1.0
  - survey_client: 1.6.0
  - systemtags: 1.8.0
  - text: 2.0.0
  - theming: 1.9.0
  - twofactor_backupcodes: 1.7.0
  - updatenotification: 1.8.0
  - video_converter: 0.1.3
  - viewer: 1.2.0
  - workflow_script: 1.3.1
  - workflowengine: 2.0.0
Disabled:
  - encryption
  - files_external
  - user_ldap

Nextcloud configuration:

``` If you have access to your command line run e.g.: sudo -u www-data php occ config:list system from within your Nextcloud installation folder

or

Insert your config.php content here
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)

</details>

**Are you using external storage, if yes which one:** local/smb/sftp/...

**Are you using encryption:** yes/no

### Server log (data/nextcloud.log)
<details>

(not available)


</details>

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、ここで説明されている2つのワークフロー設定と /usr/bin/nc_video_converter スクリプトを使用して、workflow_script 1.3.1 と workflowengine 2.0.0 のアプリで問題を再現します。ファイル作成とタグ割り当てについて報告された OCP イベント名を追跡します。完了の条件は、アップロードとタグ付けがそれぞれ対応するワークフローだけを正しいイベントでトリガーすることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
php
領域
backend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。