I get error after upgrade MW from 1.34.2 to 1.35.1
I already ran update.php with no errors
Versions
Postgres: 9.6.13
MW: 1.35.1
PHP: 7.4.13
The log error displayed only after user login:
MediaWiki internal error.
Original exception: [02aebb02b3b9bfaf3ee06fab] /w/index.php/P%C3%A1gina_principal Wikimedia\Rdbms\DBQueryError from line 1699 of /var/www/html/w/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Error 42883: ERROR: operator does not exist: timestamp with time zone < bigint
LINE 1: ...user.revactor_actor = 58) AND (revactor_timestamp < 20160101...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Function: VisualEditorHooks::onSkinTemplateNavigation
Query: SELECT 1 FROM "revision" JOIN "revision_actor_temp" "temp_rev_user" ON ((temp_rev_user.revactor_rev = rev_id)) WHERE (temp_rev_user.revactor_actor = 58) AND (revactor_timestamp < 20160101000000) LIMIT 1
Backtrace:
#0 /var/www/html/w/includes/libs/rdbms/database/Database.php(1683): Wikimedia\Rdbms\Database->getQueryException(string, string, string, string)
#1 /var/www/html/w/includes/libs/rdbms/database/Database.php(1658): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, string, string, string)
#2 /var/www/html/w/includes/libs/rdbms/database/Database.php(1227): Wikimedia\Rdbms\Database->reportQueryError(string, string, string, string, boolean)
#3 /var/www/html/w/includes/libs/rdbms/database/Database.php(1907): Wikimedia\Rdbms\Database->query(string, string, integer)
#4 /var/www/html/w/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->select(array, string, array, string, array, array)
#5 /var/www/html/w/includes/libs/rdbms/database/DBConnRef.php(313): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#6 /var/www/html/w/extensions/VisualEditor/includes/VisualEditorHooks.php(490): Wikimedia\Rdbms\DBConnRef->select(array, string, array, string, array, array)
#7 /var/www/html/w/includes/HookContainer/HookContainer.php(320): VisualEditorHooks::onSkinTemplateNavigation(SkinTimeless, array)
#8 /var/www/html/w/includes/HookContainer/HookContainer.php(131): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#9 /var/www/html/w/includes/HookContainer/HookRunner.php(3580): MediaWiki\HookContainer\HookContainer->run(string, array, array)
#10 /var/www/html/w/includes/skins/SkinTemplate.php(1051): MediaWiki\HookContainer\HookRunner->onSkinTemplateNavigation(SkinTimeless, array)
#11 /var/www/html/w/includes/skins/SkinTemplate.php(379): SkinTemplate->buildContentNavigationUrls()
#12 /var/www/html/w/includes/skins/SkinTemplate.php(127): SkinTemplate->prepareQuickTemplate()
#13 /var/www/html/w/includes/skins/SkinTemplate.php(144): SkinTemplate->generateHTML()
#14 /var/www/html/w/includes/OutputPage.php(2615): SkinTemplate->outputPage()
#15 /var/www/html/w/includes/MediaWiki.php(947): OutputPage->output(boolean)
#16 /var/www/html/w/includes/MediaWiki.php(960): MediaWiki->{closure}()
#17 /var/www/html/w/includes/MediaWiki.php(543): MediaWiki->main()
#18 /var/www/html/w/index.php(53): MediaWiki->run()
#19 /var/www/html/w/index.php(46): wfIndexMain()
#20 {main}
I tried to force update, but the error persists
php update.php --force
MediaWiki 1.35.1 Updater
Your composer.lock file is up to date with current dependencies!
Going to run database updates for *hidden*-
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
...index mwuser_pkey already set on mwuser table.
...index mwuser_user_name_key already set on mwuser table.
...index pagecontent_pkey already set on pagecontent table.
...sequence ipblocks_ipb_id_seq already exists.
...sequence revision_rev_id_seq already exists.
...sequence text_old_id_seq already exists.
...sequence recentchanges_rc_id_seq already exists.
...sequence logging_log_id_seq already exists.
...sequence page_restrictions_pr_id_seq already exists.
...sequence uploadstash_us_id_seq already exists.
...sequence category_cat_id_seq already exists.
...category table already exists.
...page table already exists.
...querycachetwo table already exists.
...page_props table already exists.
...page_restrictions table already exists.
...protected_titles table already exists.
...redirect table already exists.
...updatelog table already exists.
...change_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...l10n_cache table already exists.
...iwlinks table already exists.
...module_deps table already exists.
...uploadstash table already exists.
...user_former_groups table already exists.
...sites table already exists.
...bot_passwords table already exists.
...obsolete table 'archive2' does not exist
...column 'updatelog.ul_value' already exists
...column 'archive.ar_deleted' already exists
...column 'archive.ar_len' already exists
...column 'archive.ar_page_id' already exists
...column 'archive.ar_parent_id' already exists
...column 'categorylinks.cl_sortkey_prefix' already exists
...column 'categorylinks.cl_collation' already exists
...column 'categorylinks.cl_type' already exists
...column 'image.img_sha1' already exists
...column 'ipblocks.ipb_allow_usertalk' already exists
...column 'ipblocks.ipb_anon_only' already exists
...column 'ipblocks.ipb_block_email' already exists
...column 'ipblocks.ipb_create_account' already exists
...column 'ipblocks.ipb_deleted' already exists
...column 'ipblocks.ipb_enable_autoblock' already exists
...column 'ipblocks.ipb_parent_block_id' already exists
...column 'filearchive.fa_deleted' already exists
...column 'filearchive.fa_sha1' already exists
...column 'logging.log_deleted' already exists
...column 'logging.log_id' already exists
...column 'logging.log_params' already exists
...column 'mwuser.user_editcount' already exists
...column 'mwuser.user_newpass_time' already exists
...column 'oldimage.oi_deleted' already exists
...column 'oldimage.oi_major_mime' already exists
...column 'oldimage.oi_media_type' already exists
...column 'oldimage.oi_metadata' already exists
...column 'oldimage.oi_minor_mime' already exists
...column 'oldimage.oi_sha1' already exists
...column 'page.page_content_model' already exists
...column 'page_restrictions.pr_id' already exists
...column 'recentchanges.rc_deleted' already exists
...column 'recentchanges.rc_log_action' already exists
...column 'recentchanges.rc_log_type' already exists
...column 'recentchanges.rc_logid' already exists
...column 'recentchanges.rc_new_len' already exists
...column 'recentchanges.rc_old_len' already exists
...column 'recentchanges.rc_params' already exists
...column 'redirect.rd_interwiki' already exists
...column 'redirect.rd_fragment' already exists
...column 'revision.rev_deleted' already exists
...column 'revision.rev_len' already exists
...column 'revision.rev_parent_id' already exists
...column 'site_stats.ss_active_users' already exists
...column 'user_newtalk.user_last_timestamp' already exists
...column 'logging.log_page' already exists
...column 'interwiki.iw_api' already exists
...column 'interwiki.iw_wikiid' already exists
...column 'revision.rev_sha1' already exists
...column 'archive.ar_sha1' already exists
...column 'uploadstash.us_chunk_inx' already exists
...column 'job.job_timestamp' already exists
...column 'job.job_random' already exists
...column 'job.job_attempts' already exists
...column 'job.job_token' already exists
...column 'job.job_token_timestamp' already exists
...column 'job.job_sha1' already exists
...column 'archive.ar_id' already exists
...column 'externallinks.el_id' already exists
...column 'uploadstash.us_props' already exists
...column 'archive.ar_deleted' is already of type 'smallint'
...column 'archive.ar_minor_edit' is already of type 'smallint'
...column 'filearchive.fa_deleted' is already of type 'smallint'
...column 'filearchive.fa_height' is already of type 'integer'
...column 'filearchive.fa_metadata' is already of type 'bytea'
...column 'filearchive.fa_size' is already of type 'integer'
...column 'filearchive.fa_width' is already of type 'integer'
...column 'filearchive.fa_storage_group' is already of type 'text'
...column 'filearchive.fa_storage_key' is already of type 'text'
...column 'image.img_metadata' is already of type 'bytea'
...column 'image.img_size' is already of type 'integer'
...column 'image.img_width' is already of type 'integer'
...column 'image.img_height' is already of type 'integer'
...column 'interwiki.iw_local' is already of type 'smallint'
...column 'interwiki.iw_trans' is already of type 'smallint'
...column 'ipblocks.ipb_auto' is already of type 'smallint'
...column 'ipblocks.ipb_anon_only' is already of type 'smallint'
...column 'ipblocks.ipb_create_account' is already of type 'smallint'
...column 'ipblocks.ipb_enable_autoblock' is already of type 'smallint'
...column 'ipblocks.ipb_block_email' is already of type 'smallint'
...column 'ipblocks.ipb_address' is already of type 'text'
...column 'ipblocks.ipb_deleted' is already of type 'smallint'
...column 'mwuser.user_token' is already of type 'text'
...column 'mwuser.user_email_token' is already of type 'text'
...column 'objectcache.keyname' is already of type 'text'
...column 'oldimage.oi_height' is already of type 'integer'
...column 'oldimage.oi_metadata' is already of type 'bytea'
...column 'oldimage.oi_size' is already of type 'integer'
...column 'oldimage.oi_width' is already of type 'integer'
...column 'page.page_is_redirect' is already of type 'smallint'
...column 'page.page_is_new' is already of type 'smallint'
...column 'querycache.qc_value' is already of type 'integer'
...column 'querycachetwo.qcc_value' is already of type 'integer'
...column 'recentchanges.rc_bot' is already of type 'smallint'
...column 'recentchanges.rc_deleted' is already of type 'smallint'
...column 'recentchanges.rc_minor' is already of type 'smallint'
...column 'recentchanges.rc_new' is already of type 'smallint'
...column 'recentchanges.rc_type' is already of type 'smallint'
...column 'recentchanges.rc_patrolled' is already of type 'smallint'
...column 'revision.rev_deleted' is already of type 'smallint'
...column 'revision.rev_minor_edit' is already of type 'smallint'
...column 'templatelinks.tl_namespace' is already of type 'smallint'
...column 'user_newtalk.user_ip' is already of type 'text'
...column 'uploadstash.us_image_bits' is already of type 'smallint'
...column 'oldimage.oi_bits' is already set as NULL
...column 'oldimage.oi_timestamp' is already set as NULL
...column 'oldimage.oi_major_mime' is already set as NULL
...column 'oldimage.oi_minor_mime' is already set as NULL
...column 'image.img_metadata' is already set as NOT NULL
...column 'filearchive.fa_metadata' is already set as NOT NULL
...column 'recentchanges.rc_cur_id' is already set as NULL
...column 'oldimage.oi_deleted' is already of type 'smallint'
...index 'img_sha1' on table 'image' already exists
...index 'ipb_parent_block_id' on table 'ipblocks' already exists
...index 'oi_sha1' on table 'oldimage' already exists
...index 'page_mediawiki_title' on table 'page' already exists
...index 'pagelinks_title' on table 'pagelinks' already exists
...index 'pp_propname_page' on table 'page_props' already exists
...index 'rc_timestamp_bot' on table 'recentchanges' already exists
...index 'templatelinks_from' on table 'templatelinks' already exists
...index 'wl_user' on table 'watchlist' already exists
...index 'wl_user_notificationtimestamp' on table 'watchlist' already exists
...index 'logging_page_id_time' on table 'logging' already exists
...index 'iwl_prefix_from_title' on table 'iwlinks' already exists
...index 'iwl_prefix_title_from' on table 'iwlinks' already exists
...index 'job_timestamp_idx' on table 'job' already exists
...index 'job_sha1' on table 'job' already exists
...index 'job_cmd_token' on table 'job' already exists
...index 'job_cmd_token_id' on table 'job' already exists
...index 'fa_sha1' on table 'filearchive' already exists
...no need to drop index 'pagelink_unique'
...index 'pagelink_unique' exists
Dropping obsolete version of index 'cl_sortkey'
Creating index 'cl_sortkey'
Dropping obsolete version of index 'iwl_prefix_title_from'
Creating index 'iwl_prefix_title_from'
...no need to drop index 'logging_times'
...index 'logging_times' exists
...no need to drop index 'oi_name_archive_name'
...index 'oi_name_archive_name' exists
...no need to drop index 'oi_name_timestamp'
...index 'oi_name_timestamp' exists
...no need to drop index 'page_main_title'
...index 'page_main_title' exists
...no need to drop index 'page_mediawiki_title'
...index 'page_mediawiki_title' exists
...no need to drop index 'page_project_title'
...index 'page_project_title' exists
...no need to drop index 'page_talk_title'
...index 'page_talk_title' exists
...no need to drop index 'page_user_title'
...index 'page_user_title' exists
...no need to drop index 'page_utalk_title'
...index 'page_utalk_title' exists
...no need to drop index 'ts2_page_text'
...index 'ts2_page_text' exists
...no need to drop index 'ts2_page_title'
...index 'ts2_page_title' exists
...table 'oldimage' has correct cascading delete/update foreign key to image
...table 'page' has 'page_deleted' trigger
...no need to drop index 'ipb_address_unique'
...index 'ipb_address_unique' exists
Refreshing add_interwiki() ...done.
Refreshing ts2_page_title() ...done.
Rewriting tsearch2 triggers ...done.
...column 'recentchanges.rc_source' already exists
...column 'page.page_links_updated' already exists
...column 'mwuser.user_password_expires' already exists
...column 'l10n_cache.lc_value' is already of type 'bytea'
...T68650 already fixed or not applicable.
...column 'page_props.pp_sortkey' already exists
...index 'pp_propname_sortkey_page' on table 'page_props' already exists
...column 'page.page_lang' already exists
...column 'pagelinks.pl_from_namespace' already exists
...column 'templatelinks.tl_from_namespace' already exists
...column 'imagelinks.il_from_namespace' already exists
...hitcounter doesn't exist.
...site_stats table does not contain ss_total_views field.
...page table does not contain page_counter field.
...foreign key constraint on 'recentchanges.rc_cur_id' already does not exist
...msg_resource_links doesn't exist.
...msg_resource doesn't exist.
...column 'watchlist.wl_id' already exists
...index 'rc_name_type_patrolled_timestamp' on table 'recentchanges' already exists
...column 'change_tag.ct_id' already exists
...column 'externallinks.el_index_60' already exists
...index 'el_index_60' on table 'externallinks' already exists
...index 'el_from_index_60' on table 'externallinks' already exists
...column 'user_groups.ug_expiry' already exists
...index 'user_groups_expiry' on table 'user_groups' already exists
...Enum type media_type already contains value '3D'.
...column 'archive.ar_comment_id' already exists
...column 'ipblocks.ipb_reason_id' already exists
...column 'oldimage.oi_description_id' already exists
...column 'filearchive.fa_deleted_reason_id' already exists
...column 'filearchive.fa_description_id' already exists
...column 'recentchanges.rc_comment_id' already exists
...column 'logging.log_comment_id' already exists
...column 'protected_titles.pt_reason_id' already exists
...comment table already exists.
...revision_comment_temp table already exists.
...column 'image.img_description_id' already exists
...index site_stats_pkey already set on site_stats table.
...ip_changes table already exists.
...slots table already exists.
...slots table does not contain slot_inherited field.
...column 'slots.slot_origin' already exists
...index 'slot_revision_origin_role' on table 'slots' already exists
...content table already exists.
...content_models table already exists.
...slot_roles table already exists.
...actor table already exists.
...revision_actor_temp table already exists.
...column 'archive.ar_actor' already exists
...index 'archive_actor' on table 'archive' already exists
...column 'ipblocks.ipb_by_actor' already exists
...column 'image.img_actor' already exists
...column 'oldimage.oi_actor' already exists
...column 'filearchive.fa_actor' already exists
...column 'recentchanges.rc_actor' already exists
...column 'logging.log_actor' already exists
...index 'logging_actor_time_backwards' on table 'logging' already exists
...index 'logging_actor_type_time' on table 'logging' already exists
...index 'logging_actor_time' on table 'logging' already exists
...table site_stats already modified by patch patch-site_stats-modify.sql.
...index 'rc_namespace_title_timestamp' on table 'recentchanges' already exists
Setting sequence user_user_id_seq owner to mwuser.user_id
Setting sequence actor_actor_id_seq owner to actor.actor_id
Setting sequence page_page_id_seq owner to page.page_id
Setting sequence revision_rev_id_seq owner to revision.rev_id
Setting sequence ip_changes_ipc_rev_id_seq owner to ip_changes.ipc_rev_id
Setting sequence text_old_id_seq owner to pagecontent.old_id
Setting sequence comment_comment_id_seq owner to comment.comment_id
Setting sequence page_restrictions_pr_id_seq owner to page_restrictions.pr_id
Setting sequence archive_ar_id_seq owner to archive.ar_id
Setting sequence content_content_id_seq owner to content.content_id
Setting sequence slot_roles_role_id_seq owner to slot_roles.role_id
Setting sequence content_models_model_id_seq owner to content_models.model_id
Setting sequence externallinks_el_id_seq owner to externallinks.el_id
Setting sequence ipblocks_ipb_id_seq owner to ipblocks.ipb_id
Setting sequence filearchive_fa_id_seq owner to filearchive.fa_id
Setting sequence uploadstash_us_id_seq owner to uploadstash.us_id
Setting sequence recentchanges_rc_id_seq owner to recentchanges.rc_id
Setting sequence watchlist_wl_id_seq owner to watchlist.wl_id
Setting sequence logging_log_id_seq owner to logging.log_id
Setting sequence job_job_id_seq owner to job.job_id
Setting sequence category_cat_id_seq owner to category.cat_id
Setting sequence change_tag_ct_id_seq owner to change_tag.ct_id
Setting sequence sites_site_id_seq owner to sites.site_id
...change_tag_def table already exists.
Running maintenance/deduplicateArchiveRevId.php...
Deduplicating ar_rev_id...
... 1448-1458
Finished deduplicating ar_rev_id. 0 rows deleted, 0 assigned new IDs.
done.
...column 'change_tag.ct_tag_id' already exists
...index 'change_tag_tag_id_id' on table 'change_tag' already exists
...index 'ar_revid_uniq' on table 'archive' already exists
...index 'log_type_action' on table 'logging' already exists
...index interwiki_pkey already set on interwiki table.
...index protected_titles_pkey already set on protected_titles table.
...index site_identifiers_pkey already set on site_identifiers table.
...index 'rc_this_oldid' on table 'recentchanges' already exists
...transcache doesn't exist.
Running maintenance/populateChangeTagDef.php...
done.
...index change_tag_rc_tag_id already set on change_tag table.
...column 'ipblocks.ipb_sitewide' already exists
...ipblocks_restrictions table already exists.
...category table does not contain cat_hidden field.
...site_stats table does not contain ss_admins field.
...recentchanges table does not contain rc_cur_time field.
...change_tag table does not contain ct_tag field.
...valid_tag doesn't exist.
...tag_summary doesn't exist.
...archive table does not contain ar_comment field.
...ipblocks table does not contain ipb_reason field.
...image table does not contain img_description field.
...oldimage table does not contain oi_description field.
...filearchive table does not contain fa_deleted_reason field.
...filearchive table does not contain fa_description field.
...recentchanges table does not contain rc_comment field.
...logging table does not contain log_comment field.
...protected_titles table does not contain pt_reason field.
...archive table does not contain ar_user field.
...archive table does not contain ar_user_text field.
...ipblocks table does not contain ipb_by field.
...ipblocks table does not contain ipb_by_text field.
...image table does not contain img_user field.
...image table does not contain img_user_text field.
...oldimage table does not contain oi_user field.
...oldimage table does not contain oi_user_text field.
...filearchive table does not contain fa_user field.
...filearchive table does not contain fa_user_text field.
...recentchanges table does not contain rc_user field.
...recentchanges table does not contain rc_user_text field.
...logging table does not contain log_user field.
...logging table does not contain log_user_text field.
...index redirect_pkey already set on redirect table.
...watchlist_expiry table already exists.
Setting sequence watchlist_expiry_we_item_seq owner to watchlist_expiry.we_item
Changing 'user_newtalk.user_ip' default value
...column 'user_newtalk.user_ip' is already set as NOT NULL
Changing 'user_newtalk.user_id' default value
...index revactor_actor_timestamp already set on revision_actor_temp table.
...index revactor_page_actor_timestamp already set on revision_actor_temp table.
...revision table does not contain rev_user field.
...revision table does not contain rev_user_text field.
...revision table does not contain rev_comment field.
...revision table does not contain rev_text_id field.
...revision table does not contain rev_content_model field.
...revision table does not contain rev_content_format field.
...column 'revision.rev_comment_id' already exists
...column 'revision.rev_actor' already exists
...index 'rev_actor_timestamp' on table 'revision' already exists
...index 'rev_page_actor_timestamp' on table 'revision' already exists
...archive table does not contain ar_text_id field.
...archive table does not contain ar_content_model field.
...archive table does not contain ar_content_format field.
Changing column type of 'updatelog.ul_key' from 'varchar' to 'varchar(255)'
Changing column type of 'updatelog.ul_value' from 'text' to 'TEXT'
Changing column type of 'site_identifiers.si_type' from 'text' to 'TEXT'
Changing column type of 'site_identifiers.si_key' from 'text' to 'TEXT'
Changing column type of 'actor.actor_id' from 'bigint' to 'BIGINT'
Changing column type of 'actor.actor_name' from 'text' to 'TEXT'
Changing column type of 'user_former_groups.ufg_group' from 'text' to 'TEXT'
...foreign key constraint on 'user_former_groups.ufg_user' already does not exist
...ldap_domains table already exists.
...site_stats is populated...done.
Populating rev_len column
...doing rev_id from 1 to 200
...doing rev_id from 201 to 400
...doing rev_id from 401 to 600
...doing rev_id from 601 to 800
...doing rev_id from 801 to 1000
...doing rev_id from 1001 to 1200
...doing rev_id from 1201 to 1400
...doing rev_id from 1401 to 1600
...doing rev_id from 1601 to 1800
...doing rev_id from 1801 to 2000
...doing rev_id from 2001 to 2200
...doing rev_id from 2201 to 2400
...doing rev_id from 2401 to 2600
...doing rev_id from 2601 to 2800
...doing rev_id from 2801 to 3000
...doing rev_id from 3001 to 3200
Populating ar_len column
...doing ar_id from 1 to 200
rev_len and ar_len population complete [0 revision rows, 0 archive rows].
Populating rev_sha1 column
...doing rev_id from 1 to 200
...doing rev_id from 201 to 400
...doing rev_id from 401 to 600
...doing rev_id from 601 to 800
...doing rev_id from 801 to 1000
...doing rev_id from 1001 to 1200
...doing rev_id from 1201 to 1400
...doing rev_id from 1401 to 1600
...doing rev_id from 1601 to 1800
...doing rev_id from 1801 to 2000
...doing rev_id from 2001 to 2200
...doing rev_id from 2201 to 2400
...doing rev_id from 2401 to 2600
...doing rev_id from 2601 to 2800
...doing rev_id from 2801 to 3000
...doing rev_id from 3001 to 3200
Populating ar_sha1 column
...doing ar_rev_id from 1448 to 1647
Populating ar_sha1 column legacy rows
rev_sha1 and ar_sha1 population complete [0 revision rows, 0 archive rows].
Populating and recalculating img_sha1 field
Done 200 of 241, 82.988%
Done 241 files in 145.0 seconds
Fixing protocol-relative entries in the externallinks table...
Done, 0 rows updated.
Populating fa_sha1 field from fa_storage_key
Done 0 files in 0.3 seconds
Updating *_from_namespace fields in links tables.
...doing page_id from 1 to 200
...doing page_id from 200 to 399
...doing page_id from 399 to 598
Adding empty categories with description pages...
Removing empty categories without description pages...
Category cleanup complete.
Populating page_props.pp_sortkey...
Populating page_props.pp_sortkey complete.
Updated a total of 0 rows
Copying IP revisions to ip_changes, from rev_id 0 to rev_id 3082
...checking 1 revisions for IP edits that need copying, between rev_ids 0 and 200
Attempted to insert 0 IP revisions, 0 actually done.
Updating externallinks table index fields
el_id 0 - 463 of 463
Done, 0 rows updated, 0 deleted.
Set the local repo temp zone container to be private.
Purging caches...done.
Done in 5 min 30 s.