Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Error during preview generation of .mp3 file #37688

Closed
6 of 9 tasks
langfingaz opened this issue Apr 12, 2023 · 5 comments · Fixed by #38496
Closed
6 of 9 tasks

[Bug]: Error during preview generation of .mp3 file #37688

langfingaz opened this issue Apr 12, 2023 · 5 comments · Fixed by #38496
Assignees
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap 25-feedback bug

Comments

@langfingaz
Copy link

langfingaz commented Apr 12, 2023

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I've searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • Nextcloud Server is running on 64bit capable CPU, PHP and OS.
  • I agree to follow Nextcloud's Code of Conduct.

Bug description

I get the following error during preview generation of one problematic .mp3 file. The generation stops at this error and does not continue.

2023-04-12T09:41:58+00:00 Generating previews for /Eowyn/files/190203_0000_Zuendfunk_Was-Porno-und-Politik-miteinander-zu-tun-ha.mp3
An unhandled exception has been thrown:
TypeError: chr(): Argument #1 ($codepoint) must be of type int, string given in /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php:3328
Stack trace:
#0 /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php(3328): chr('\x00')
#1 /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php(3345): ID3Parser\getID3\Tags\getid3_id3v2::IsANumber('\x00Bayeris', false)
#2 /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php(1660): ID3Parser\getID3\Tags\getid3_id3v2::IsValidDateStampString('\x00Bayeris')
#3 /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php(338): ID3Parser\getID3\Tags\getid3_id3v2->ParseID3v2Frame(Array)
#4 /var/www/html/3rdparty/christophwurst/id3parser/src/getID3/getid3.php(164): ID3Parser\getID3\Tags\getid3_id3v2->Analyze()
#5 /var/www/html/3rdparty/christophwurst/id3parser/src/ID3Parser.php(20): ID3Parser\getID3\getid3->analyze('/var/www/html/d...')
#6 /var/www/html/lib/private/Preview/MP3.php(51): ID3Parser\ID3Parser->analyze('/var/www/html/d...')
#7 /var/www/html/lib/private/Preview/GeneratorHelper.php(65): OC\Preview\MP3->getThumbnail(Object(OC\Files\Node\File), 512, 512)
#8 /var/www/html/lib/private/Preview/Generator.php(343): OC\Preview\GeneratorHelper->getThumbnail(Object(OC\Preview\MP3), Object(OC\Files\Node\File), 512, 512)
#9 /var/www/html/lib/private/Preview/Generator.php(162): OC\Preview\Generator->getMaxPreview(Object(OC\Files\SimpleFS\SimpleFolder), Object(OC\Files\Node\File), 'audio/mpeg', '')
#10 /var/www/html/lib/private/PreviewManager.php(200): OC\Preview\Generator->generatePreviews(Object(OC\Files\Node\File), Array, 'audio/mpeg')
#11 /var/www/html/custom_apps/previewgenerator/lib/Command/Generate.php(230): OC\PreviewManager->generatePreviews(Object(OC\Files\Node\File), Array)
#12 /var/www/html/custom_apps/previewgenerator/lib/Command/Generate.php(212): OCA\PreviewGenerator\Command\Generate->parseFile(Object(OC\Files\Node\File))
#13 /var/www/html/custom_apps/previewgenerator/lib/Command/Generate.php(190): OCA\PreviewGenerator\Command\Generate->parseFolder(Object(OC\Files\Node\Folder), Array)
#14 /var/www/html/custom_apps/previewgenerator/lib/Command/Generate.php(142): OCA\PreviewGenerator\Command\Generate->generateUserPreviews(Object(OC\User\User))
#15 /var/www/html/3rdparty/symfony/console/Command/Command.php(255): OCA\PreviewGenerator\Command\Generate->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /var/www/html/3rdparty/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 /var/www/html/3rdparty/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(OCA\PreviewGenerator\Command\Generate), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 /var/www/html/3rdparty/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 /var/www/html/lib/private/Console/Application.php(213): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /var/www/html/console.php(100): OC\Console\Application->run()
#21 /var/www/html/occ(11): require_once('/var/www/html/c...')

In MusicBrainz Picard I can see the following tags of the problematic .mp3 file:

image


This bug is maybe related to #35899. However, my stack trace is a different one (getid3_id3v2->ParseID3v2Frame() and strpos() vs getid3_id3v2::IsANumber('\x00Bayeris', false)).

Steps to reproduce

You can download a copy of the .mp3 file here: https://cloud.privacy1st.de/s/Qy5KDkESadJ4RRM

  1. Place the .mp3 file in a Nextcloud directory
  2. Start preview generation e.g. with generate-all
  3. The preview generation stops with an error at the .mp3 file

Expected behavior

Either the preview should be generated successfully or the error should be caught (and reported) and the preview generation should continue.

Installation method

Community Docker image

Nextcloud Server version

25.0.5

Operating system

Other

PHP engine version

None

Web server

Nginx

Database engine version

MairaDB

Is this bug present after an update or on a fresh install?

I haven't tested this.

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

{   
    "system": {
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {   
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {   
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpsecure": "ssl",
        "mail_smtpauth": true,
        "mail_smtpauthtype": "login",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "25.0.4.1",
        "overwrite.cli.url": "https:\/\/cloud.privacy1st.de",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "theme": "",
        "loglevel": 1,
        "maintenance": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "overwriteprotocol": "https",
        "encryption.legacy_format_support": false,
        "share_folder": "\/shared",
        "default_phone_region": "DE",
        "activity_expire_days": 30,
        "activity_use_cached_mountpoints": false,
        "upgrade.disable-web": false,
        "simpleSignUpLink.shown": false,
        "app_install_overwrite": [
            "talk_simple_poll"
        ],
        "preview_max_scale_factor": "1",
        "preview_max_x": "512",
        "preview_max_y": "512",
        "trusted_domains": [
            "cloud.privacy1st.de",
            "c.p1st.de",
            "p1st.de"
        ]
    }
}

List of activated Apps

Enabled:
  - activity: 2.17.0
  - bookmarks: 12.1.0
  - calendar: 4.3.2
  - camerarawpreviews: 0.8.1
  - checksum: 1.2.1
  - circles: 25.0.0
  - cloud_federation_api: 1.8.0
  - comments: 1.15.0
  - contacts: 5.2.0
  - contactsinteraction: 1.6.0
  - cospend: 1.5.8
  - dav: 1.24.0
  - deck: 1.8.3
  - drawio: 2.1.1
  - federatedfilesharing: 1.15.0
  - federation: 1.15.0
  - files: 1.20.1
  - files_downloadactivity: 1.16.0
  - files_linkeditor: 1.1.14
  - files_pdfviewer: 2.6.0
  - files_rightclick: 1.4.0
  - files_sharing: 1.17.0
  - forms: 3.2.0
  - gpoddersync: 3.8.0
  - gpxpod: 5.0.10
  - logreader: 2.10.0
  - lookup_server_connector: 1.13.0
  - maps: 1.0.2
  - metadata: 0.18.0
  - news: 21.1.0
  - nextcloud_announcements: 1.14.0
  - notifications: 2.13.1
  - oauth2: 1.13.0
  - onlyoffice: 7.8.0
  - password_policy: 1.15.0
  - photos: 2.0.1
  - polls: 5.0.0
  - previewgenerator: 5.2.2
  - privacy: 1.9.0
  - provisioning_api: 1.15.0
  - quota_warning: 1.16.0
  - related_resources: 1.0.4
  - settings: 1.7.0
  - sharebymail: 1.15.0
  - spreed: 15.0.5
  - survey_client: 1.13.0
  - suspicious_login: 4.3.0
  - systemtags: 1.15.0
  - tasks: 0.14.5
  - text: 3.6.0
  - theming: 2.0.1
  - twofactor_backupcodes: 1.14.0
  - twofactor_nextcloud_notification: 3.6.0
  - updatenotification: 1.15.0
  - viewer: 1.9.0
  - workflowengine: 2.7.0

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

I checked my log files, but no log entry is written there when the preview generation stops.

Additional info

No response

@szaimen

This comment was marked as resolved.

@ChristophWurst

This comment was marked as resolved.

@szaimen

This comment was marked as resolved.

@szaimen
Copy link
Contributor

szaimen commented Apr 12, 2023

Cc @come-nc then? 🤷‍♂️

@kesselb
Copy link
Contributor

kesselb commented May 27, 2023

Hi, please report it upstream to https://github.com/JamesHeinrich/getID3/issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap 25-feedback bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants