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)

x86_64
Linux
task
Not set
normal

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: nobody → sdeckelmann
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.