So on the DB screen I clicked "Install", it was loading the next page, and I clicked it again (by mistake, I swear!). Then instead of loading the next page, it skipped immediately to the configure form (of course, most of drupal wasn't installed yet). The form actually looked fine, but hitting submit and major breakage happaned (i.e., a fatal error).

There are two probable solutions that I can see, but others probably have better ideas:
1. Do one of those annoying javascirpt things that blocks the button if you've clicked it
2. Actually be smart and keep track of where in the install you are so it can pick up where it left off (unlikely, but hey, PHP is turing complete)

Comments

jbrown’s picture

I've replicated this.

Double clicking "Save and continue" means that you straight to the site information form.

The next page is just the following error:

Fatal error: Call to undefined function field_attach_load() in /mnt/jonny-home/sites/drupal-7.x-dev/includes/entity.inc on line 309

It definitely needs to be fixed as people quite often double click when it is not necessary.

Ideally, both solutions 1 + 2 should be implemented.

I have had clients encounter problems before with forms being submitted multiple times. Drupal forms system should prevent this from happening.

David_Rothstein’s picture

One of the problems here (with this specific form) is that it does so much when you submit it - on the same page request, it installs the entire system.module and all its database tables, plus the user module too.

So if you are running on a machine that is not ultrafast, it might sit there a long time and you might think it's broken and be tempted to double-click.

We could alleviate the issue a bit by trying to move a lot of that processing into the batch step, so the form doesn't freeze when you submit it... but then we'd still somehow have to make sure the {batch} table itself was created and available beforehand. This might be difficult.

Agreed with @jbrown that any other "double-click" prevention solution should probably be done more generally in the form API (probably via a separate issue).

David_Rothstein’s picture

Version: 7.x-dev » 8.x-dev

I just discovered #483876: Disable install button once clicked (which this is almost a duplicate of). They eventually leaned against the approach of disabling the button...

However, we can continue with the other solutions here. The installer is faster than it used to be, but for some browser/server combinations, I think this is still a problem that can happen.

helmo’s picture

clemens.tolboom’s picture

There is a more general discussion in #1705618: Double click prevention on form submission

It has a patch taken from a non generic #483876: Disable install button once clicked

clemens.tolboom’s picture

As #1705618: Double click prevention on form submission is now fixed for 8.x please retest and close.

#1705618: Double click prevention on form submission is scheduled for backport too.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

quietone’s picture

Issue summary: View changes
Status: Active » Closed (cannot reproduce)
Issue tags: +Bug Smash Initiative

#1705618: Double click prevention on form submission was committed to 8.4.x

I tested with Drupal 8.9.13-dev and was not able to reproduce the problem. Multiple clicks on the buttons on the install screens did not interrupt the install process.

Therefore, closing as cannot reproduce. If you are experiencing this problem reopen the issue, by setting the status to 'Active', and provide complete steps to reproduce the issue (starting from "Install Drupal core").

Thanks!