action #31933

Uploaded asset fails moving file to final destination

Added by szarate about 2 years ago. Updated almost 2 years ago.

Status:ResolvedStart date:17/02/2018
Priority:HighDue date:
Assignee:EDiGiacinto% Done:

0%

Category:-
Target version:Done
Difficulty:
Duration:

Description

Logwarn is sending this messages, it seems to be happening regardless of the asset type.

[2018-02-17T03:04:48.0448 CET] [error] Can't move file "/var/lib/openqa/share/factory/tmp/mojo.tmp.PCemc12RxglxtsXY" to "/var/lib/openqa/testresults/01480/01480896-sle-12-SP3-Server-DVD-Updates-x86_64-Build20180217-1-mau-qa_kernel_ltp_filecaps@64bit/video.ogv": No such file or directory at /usr/lib/perl5/vendor_perl/5.18.2/Mojo/Asset/File.pm line 106.

[2018-02-17T03:05:56.0224 CET] [error] Can't move file "/var/lib/openqa/share/factory/tmp/mojo.tmp.Nt6u7kq3esNPyWZV" to "/var/lib/openqa/testresults/01480/01480880-sle-12-SP3-Server-DVD-Updates-x86_64-Build20180217-1-mau-qa_cpio@64bit/video.ogv": No such file or directory at /usr/lib/perl5/vendor_perl/5.18.2/Mojo/Asset/File.pm line 106.

[2018-02-16T20:33:14.0459 CET] [error] Can't move file "/var/lib/openqa/share/factory/tmp/mojo.tmp.PMWTihadNCac2xGu" to "/var/lib/openqa/images/6e3/abe/5929d6f99c76a6a620d8d72bad.png": No such file or directory at /usr/lib/perl5/vendor_perl/5.18.2/Mojo/Asset/File.pm line 106.

[2018-02-16T20:39:52.0476 CET] [error] Can't move file "/var/lib/openqa/share/factory/tmp/mojo.tmp.2EvFESLNscqAUG8h" to "/var/lib/openqa/testresults/01480/01480500-sle-12-SP3-Desktop-DVD-Updates-x86_64-Build20180216-5-qam-regression-installation@64bit/ulogs/install_and_reboot-y2logs.tar.bz2": No such file or directory at /usr/lib/perl5/vendor_perl/5.18.2/Mojo/Asset/File.pm line 106.

History

#1 Updated by coolo about 2 years ago

not created directory before moving?

#2 Updated by coolo about 2 years ago

Debugged this down to the following:

something forks within openQA webui and this fork has the Mojo::Asset::File object, which it then DESTROYS - and by this removing from disk. The parent then can't move - as this DESTROYs from the back.

I don't know how to avoid the child removing the temp file

#4 Updated by kraih about 2 years ago

As a temporary workaround you could use POSIX::_exit(0) in the forked process. That prevents Perl cleanup code (like all the DESTROY handlers) from running. We do that for Mojo::IOLoop->subprocess for example.

#5 Updated by kraih about 2 years ago

The fix was released with Mojolicious 7.67 and has been submitted to Factory.

#6 Updated by coolo almost 2 years ago

  • Status changed from New to Resolved

we deployed the patch - waiting for a fresh redeploy

#7 Updated by szarate almost 2 years ago

  • Target version changed from Current Sprint to Done

#8 Updated by szarate almost 2 years ago

  • Assignee set to EDiGiacinto

#9 Updated by nicksinger almost 2 years ago

  • Related to action #32284: Test incompletes because the publishing of the HDD fails added

#10 Updated by coolo almost 2 years ago

  • Related to deleted (action #32284: Test incompletes because the publishing of the HDD fails)

Also available in: Atom PDF