- Issue created by @wim leers
- last update
over 1 year ago Custom Commands Failed - @wim-leers opened merge request.
- Status changed to Needs review
over 1 year ago 12:04pm 19 April 2023 - last update
over 1 year ago Custom Commands Failed - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Just implemented status report entry:
- last update
over 1 year ago 702 pass, 14 fail - Status changed to Needs work
over 1 year ago 11:38pm 20 April 2023 - šŗšøUnited States phenaproxima Massachusetts
The tests, they are a-failin'...
- Issue was unassigned.
- š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Unassigning since I haven't had time for this and won't soon.
- š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Note that I believe that we could install
rsync
on DrupalCI. See https://www.drupal.org/drupalorg/docs/drupal-ci/customizing-drupalci-tes... ā .But we should also just request them to install it ā seems like that'd not be a big deal. Tagging for that ā the follow-up is necessary not here but in the DrupalCI issue queue!
- šŗšøUnited States tedbow Ithaca, NY, USA
@Wim Leers I assuming that #6 means we could install rsync in drupalci.yml
How hard would that be? Should we just try it here? If so we might want to add data provider to our build tests to run both copiers.
One concern I have is we might recommend something we don't test. We mention briefly in discussions that maybe that is ok because composer stage is testing rsync but there is no mention in the issue summary.
Turns out that we don't particularly encourage the use of rsync, which does perform integrity checks.
So rsync does integrity checks after or during the copy?
If rsync fails in integrity checks are we thinking that logic is
\Drupal\package_manager\StageBase::apply
would catch this and throw aApplyFailedException
error where the php syncer would just not check? - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
So rsync does integrity checks after or during the copy?
Quoting
man rsync
:-c, --checksum This forces the sender to checksum every regular file using a 128-bit MD4 checksum. It does this during the initial file- system scan as it builds the list of all available files. The receiver then checksums its version of each file (if it exists and it has the same size as its sender-side counterpart) in order to decide which files need to be updated: files with either a changed size or a changed checksum are selected for transfer. Since this whole-file checksumming of all files on both sides of the connection occurs in addition to the automatic checksum verifications that occur during a file's transfer, this option can be quite slow. Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking its whole-file checksum, but that automatic after-the-transfer verification has nothing to do with this option's before-the- transfer "Does this file need to be updated?" check.
Note that
\PhpTuf\ComposerStager\Infrastructure\Service\FileSyncer\RsyncFileSyncer
does not set--checksum
or-c
. But it's that second paragraph that explains why that's simply unnecessary:rsync
always checksums when transferring data.If rsync fails in integrity checks are we thinking that logic is
\Drupal\package_manager\StageBase::apply
would catch this and throw aApplyFailedException
error where the php syncer would just not check?Yes:
try { $this->rsync->run($command, $callback); } catch (ExceptionInterface $e) { throw new IOException($e->getMessage(), 0, $e); }
would throw and
try { $this->committer->commit($stage_dir, $active_dir, $paths_to_exclude, NULL, $timeout); } catch (InvalidArgumentException | PreconditionException $e) { ā¦ } catch (\Throwable $throwable) { // The commit operation may have failed midway through, and the site code // is in an indeterminate state. Release the flag which says we're still // applying, because in this situation, the site owner should probably // restore everything from a backup. $this->setNotApplying()(); throw new ApplyFailedException($this, (string) $this->getFailureMarkerMessage(), $throwable->getCode(), $throwable); }
would catch it and would contain the
stderr
output (starting with\Symfony\Component\Process\Exception\ProcessFailedException
). - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
#6:
Note that I believe that we could install rsync on DrupalCI. See https://www.drupal.org/drupalorg/docs/drupal-ci/customizing-drupalci-tes ā ....
Done: š Use the rsync file syncer by default Fixed .
- šŗšøUnited States tedbow Ithaca, NY, USA
We don't need postpone this issue because I think there are still actionable steps here but we should not commit it until we make sure the test failures are rsync not that we actually testing it in š Use the rsync file syncer by default Fixed are resolved.
- Assigned to omkar.podey
- last update
over 1 year ago 449 pass, 69 fail - last update
over 1 year ago 449 pass, 69 fail - last update
over 1 year ago 449 pass, 69 fail - last update
over 1 year ago 494 pass, 41 fail - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Discussed with @omkar.podey:
- First, install
rsync
on DrupalCI (commit #3362143-10: Install rsync on DrupalCI and run build tests with it ā as a commit in this MR). - This should make tests pass. Or should allow you to make them pass! š
- Once tests are green, implement the final step: the second step of the issue summary's proposed resolution, since so far it only implements the first step.
Because the proposed resolution in the issue summary does already say this:
- Status report entry that strongly recommends the use of
rsync
and warns the user if that's not being used. - Detect presence of
rsync
during installation and then automatically switch torsync
instead ofphp
file syncer (which is the sensible default: it always works).
- First, install
- š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
@tedbow tagged this in #7. But that was specifically for ensuring that our recommendation actually works: i.e. that tests can pass when using
rsync
.That is exactly what š Use the rsync file syncer by default Fixed is for (which was opened after #7). So marking this postponed on that issue, but we can already get this issue 100% ready, so it can land immediately after we sort out the remaining problems in #3362143 š
- last update
over 1 year ago 474 pass, 46 fail - Open on Drupal.org āCore: 10.1.x + Environment: PHP 8.1 & MySQL 8last update
over 1 year ago Not currently mergeable. - Open on Drupal.org āCore: 10.1.x + Environment: PHP 8.1 & MySQL 8last update
over 1 year ago Not currently mergeable. - last update
over 1 year ago 476 pass, 45 fail - last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago 443 pass, 80 fail - last update
over 1 year ago 709 pass, 61 fail - last update
over 1 year ago 778 pass, 15 fail - last update
over 1 year ago 794 pass, 1 fail - last update
over 1 year ago 506 pass, 29 fail - last update
over 1 year ago 480 pass, 38 fail - last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago 551 pass, 37 fail - last update
over 1 year ago 485 pass, 70 fail - last update
over 1 year ago 485 pass, 70 fail - last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago 792 pass, 3 fail - last update
over 1 year ago 794 pass, 2 fail - š®š³India omkar.podey
The failure occurs in build test
Could not delete /private/tmp/.package_managera198d4e2-1eeb-4d1b-9ce4-48c92dde9305/DrY-pNX7W3z6XKjoN3EUJ1Zo-R1WV5zk27haBgWLAMc/web/sites/default/default.services.yml: Could not delete /private/tmp/.package_managera198d4e2-1eeb-4d1b-9ce4-48c92dde9305/DrY-pNX7W3z6XKjoN3EUJ1Zo-R1WV5zk27haBgWLAMc/web/sites/default/default.settings.php:
- last update
over 1 year ago 794 pass, 2 fail - Issue was unassigned.
- Status changed to Needs review
over 1 year ago 10:10am 31 May 2023 - šŗšøUnited States tedbow Ithaca, NY, USA
Tests failing. I haven't looked further yet
- Assigned to omkar.podey
- Status changed to Needs work
over 1 year ago 4:27pm 31 May 2023 - last update
over 1 year ago 801 pass - last update
over 1 year ago 801 pass - last update
over 1 year ago 801 pass - Assigned to phenaproxima
- last update
over 1 year ago 801 pass - Assigned to tedbow
- Status changed to Needs review
over 1 year ago 8:08pm 31 May 2023 - Issue was unassigned.
- šŗšøUnited States tedbow Ithaca, NY, USA
I think this looks good but could use other opinions on the wording.
- Assigned to omkar.podey
- Status changed to Needs work
over 1 year ago 9:07am 1 June 2023 - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
I helped @omkar.podey:
- to figure out a way forward here, because it is physically impossible for a validator to show a validation result that depends on the
TERMINATE
event (because it happens after the status report page has rendered!) - recover the functional test coverage from š Module does not work with Automated Cron Closed: won't fix
- to figure out a way forward here, because it is physically impossible for a validator to show a validation result that depends on the
- š®š³India omkar.podey
the comment just above is for another issue, i have ported the comment to š Disallow unattended updates if performed by automated_cron Fixed
- Issue was unassigned.
- Status changed to Needs review
over 1 year ago 12:07pm 1 June 2023 - šŗšøUnited States tedbow Ithaca, NY, USA
changing the title because there are know problem with the PHP syncer.
- last update
over 1 year ago 812 pass - Status changed to Needs work
over 1 year ago 4:32pm 1 June 2023 - last update
over 1 year ago 808 pass, 1 fail - Assigned to tedbow
- Status changed to Needs review
over 1 year ago 4:40pm 1 June 2023 - Assigned to phenaproxima
- Status changed to Needs work
over 1 year ago 4:53pm 1 June 2023 - last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago 808 pass, 1 fail - last update
over 1 year ago Custom Commands Failed - šŗšøUnited States tedbow Ithaca, NY, USA
I think this looks good but tests failed
- last update
over 1 year ago 813 pass - last update
over 1 year ago 813 pass - Assigned to tedbow
- Status changed to Needs review
over 1 year ago 9:13pm 1 June 2023 33:00 30:29 Running- Status changed to RTBC
over 1 year ago 2:03am 2 June 2023 - šŗšøUnited States tedbow Ithaca, NY, USA
Looks good. I just removed one left over change
- last update
over 1 year ago 813 pass - š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Looks superb now!
Just one question. One line in
hook_help()
that I think is obsolete. - last update
over 1 year ago 813 pass -
phenaproxima ā
committed b3c1235b on 3.0.x authored by
Wim Leers ā
Issue #3355105 by omkar.podey, phenaproxima, Wim Leers, tedbow: Warn...
-
phenaproxima ā
committed b3c1235b on 3.0.x authored by
Wim Leers ā
- Status changed to Fixed
over 1 year ago 12:52pm 2 June 2023 - Issue was unassigned.
- š§šŖBelgium wim leers Ghent š§šŖšŖšŗ
Why was this committed without actually answering my question? I don't understand why a "I'm not sure" is followed by a commit?
I'm not sure either, to be honest, but we do account for the possibility (during status check) that they might be using the PHP file syncer, somehow. If they are, it seemed unfair to just say "don't use that!" without explaining how to change it back.
So I still think that this is essentially noise in
hook_help()
:
$output .= '<p>' . t('If <code>rsync
is available but Package Manager is configured to use the built-in PHP file syncer, you should also add the following tosettings.php
:') . '';
$output .= "\$config['package_manager.settings']['file_syncer'] = 'rsync';
";
But ā¦ since this is "just"
hook_help()
which will change anyway when going into core ā¦ not reopening this. Automatically closed - issue fixed for 2 weeks with no activity.