Bug 1641223
| Summary: | Can't create a new session in foreman: integer out of range | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Alexey Masolov <amasolov> |
| Component: | Users & Roles | Assignee: | Suraj Patil <supatil> |
| Status: | CLOSED ERRATA | QA Contact: | Radovan Drazny <rdrazny> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.4 | CC: | akapse, amasolov, andrew.schofield, baitken, bbuckingham, cmarinea, dhlavacd, inecas, jko, mhulan, oezr, oprazak, pdudley, satellite6-bugs, sthirugn, wpinheir |
| Target Milestone: | 6.7.0 | Keywords: | FieldEngineering, PrioBumpField, Triaged |
| Target Release: | Unused | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | foreman-1.24.1.5-1 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-04-14 13:23:25 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Created redmine issue http://projects.theforeman.org/issues/26009 from this bug *** Bug 1758292 has been marked as a duplicate of this bug. *** Linking an issue, that contains an easyfix. Verified on Sat 6.7 Snap 15. Logged out from the WebUI, run 'foreman-rake db:sessions:clear' $ sudo -u foreman psql foreman=> select * from sessions_id_seq; sequence_name | last_value | start_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called -----------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- sessions_id_seq | 269 | 1 | 1 | 9223372036854775807 | 1 | 1 | 29 | t | t (1 row) The max value has been set to the PG bigint value. foreman=> alter sequence sessions_id_seq restart with 9223372036854775807; ALTER SEQUENCE foreman=> select * from sessions_id_seq; sequence_name | last_value | start_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called -----------------+---------------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- sessions_id_seq | 9223372036854775807 | 1 | 1 | 9223372036854775807 | 1 | 1 | 0 | t | f (1 row) Logged back into the WebUI, did some clicking around. foreman=> select * from sessions_id_seq; sequence_name | last_value | start_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called -----------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- sessions_id_seq | 5 | 1 | 1 | 9223372036854775807 | 1 | 1 | 29 | t | t (1 row) The value correctly rolled over the bigint limit, and started the sequence from 1 again. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2020:1454 |
Description of problem: Can't open a new foreman session. WebUI gives "We're sorry, but something went wrong.". API calls return Error 500. === production.log === 2018-10-19 11:46:36 39364d1c [app] [F] | ActiveRecord::StatementInvalid (PG::Error: ERROR: integer out of range | : INSERT INTO "sessions" ("created_at", "data", "session_id", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"): | lib/middleware/tagged_logging.rb:18:in `call' === === postgresql.log === 2018-10-20 14:40:18 AEDT STATEMENT: INSERT INTO "sessions" ("session_id", "data", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" 2018-10-20 14:40:18 AEDT ERROR: integer out of range 2018-10-20 14:40:18 AEDT STATEMENT: INSERT INTO "sessions" ("session_id", "data", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" === Version-Release number of selected component (if applicable): Satellite 6.2, 6.3, 6.4 How reproducible: 100% Steps to Reproduce: 1. Clean your sessions to avoid further mess by running 'foreman-rake db:sessions:clear' 2. Modify your last value in foreman.sessions_id_seq to something bigger than integer. So the next value for ID in foreman.sessions will be bigger than integer. Like: foreman=# alter sequence sessions_id_seq restart with 2151782968; ALTER SEQUENCE foreman=# select * from sessions_id_seq; sequence_name | last_value | start_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called -----------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- sessions_id_seq | 2151782969 | 1 | 1 | 9223372036854775807 | 1 | 1 | 31 | f | t (1 row) foreman=# \d+ sessions; Table "public.sessions" Column | Type | Modifiers | Storage | Stats target | Description ------------+-----------------------------+-------------------------------------------------------+----------+--------------+------------- id | integer | not null default nextval('sessions_id_seq'::regclass) | plain | | session_id | character varying(255) | not null | extended | | data | text | | extended | | created_at | timestamp without time zone | | plain | | updated_at | timestamp without time zone | | plain | | Indexes: "sessions_pkey" PRIMARY KEY, btree (id) "index_sessions_on_session_id" btree (session_id) "index_sessions_on_updated_at" btree (updated_at) 3. Done. Actual results: "We're sorry, but something went wrong." in the webui. Not able to register new servers, etc. Expected results: Functionality as usual. Additional info: Restart the sequence with 1 to bring your Satellite back online. foreman=# alter sequence sessions_id_seq restart with 1; ALTER SEQUENCE