Problem/Motivation
MenuTreeStorage::doSave() wraps a transaction and throws an exception. The exception is not caught by the standard install and the batch process is broken.
As well it is not guaranteed that menu_tree storage is created by the time the standard install profile creates the menu link entity so that must be created first. This relates to #2181289: Prevent exceptions on missing cache table during cache clear for pgsql because there are transactions being aborted and subsequent queries fail.
Proposed resolution
Wrap the menu link creation in try/catch, and force a rebuild which will create the menu_tree storage if it has not been created.
Remaining tasks
Review
Original report by steinmb
Don't shoot. I know the installer on PostgreSQL have been rather buggy but I have been able to install lately, but right now does it seems to be broken. Tested both minimum and default but they both break.
PHP 5.5.15
Postgres 9.3.x
Install profile minimal and standard
Standard install profile
An AJAX HTTP error occurred.
HTTP Result Code: 200
Debugging information follows.
Path: http://d8.dev/core/install.php?langcode=en&profile=standard&id=1&op=do_nojs&op=do
StatusText: OK
ResponseText: Drupal\Component\Plugin\Exception\PluginNotFoundException: Plugin ID 'contact.site_page could not be found' was not found. in Drupal\Core\Menu\MenuLinkManager->getDefinition() (line 210 of /Users/steinmb/apache/htdocs/d8/drupal/core/lib/Drupal/Core/Menu/MenuLinkManager.php).
Minimal install profile
Finish without a visible error but /admin is empty. This is error from Postgres during installation: