Closed
Bug 979273
Opened 11 years ago
Closed 11 years ago
Postgres processed_crash table partitions must exist for all reports table partitions
Categories
(Socorro :: Database, task)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: lars, Assigned: selenamarie)
References
Details
we started saving processed crashes in PG on a certain date. The partitioned table for the processed crashes doesn't exist prior to that date. If a priority job comes in for a crash older than that date, the PG crash storage code will fail with a 'table not found' error.
The processor iterates through each crash storage system attempting to save the processed crash. If the first crash storage system raises an exception, the loop is broken and the other crash storage systems don't even get tried. This behavior is to prevent an inconsistent state between storage systems.
Solution: create the PG 'processed_crash' table partitions for all the same partitions that the 'reports' table has.
| Assignee | ||
Updated•11 years ago
|
Assignee: nobody → sdeckelmann
| Assignee | ||
Comment 1•11 years ago
|
||
On prod:
breakpad=# \d processed_crashes
Table "public.processed_crashes"
Column | Type | Modifiers
-----------------+--------------------------+-----------
uuid | uuid | not null
processed_crash | json | not null
date_processed | timestamp with time zone |
Number of child tables: 116 (Use \d+ to list them.)
breakpad=# \d reports
Table "public.reports"
Column | Type | Modifiers
---------------------+--------------------------+------------------------------------------------------
id | integer | not null default nextval('reports_id_seq'::regclass)
client_crash_date | timestamp with time zone |
date_processed | timestamp with time zone |
uuid | character varying(50) | not null
product | character varying(30) |
version | character varying(16) |
build | character varying(30) |
signature | character varying(255) |
url | character varying(255) |
install_age | integer |
last_crash | integer |
uptime | integer |
cpu_name | character varying(100) |
cpu_info | character varying(100) |
reason | character varying(255) |
address | character varying(20) |
os_name | character varying(100) |
os_version | character varying(100) |
email | character varying(100) |
user_id | character varying(50) |
started_datetime | timestamp with time zone |
completed_datetime | timestamp with time zone |
success | boolean |
truncated | boolean |
processor_notes | text |
user_comments | character varying(1024) |
app_notes | character varying(1024) |
distributor | character varying(20) |
distributor_version | character varying(20) |
topmost_filenames | text |
addons_checked | boolean |
flash_version | text |
hangid | text |
process_type | text |
release_channel | text |
productid | text |
exploitability | text |
flash_process_dump | text |
update_channel | text |
Number of child tables: 115 (Use \d+ to list them.)
I ended up with one extra processed_crashes table earlier than the available reports tables, but that should be fine.
Also ran same routine on stage.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•