Обсуждение: panic failed to add item
I get this running mnogosearch against my 8.4.1 database consistently:
PANIC:  failed to add item to the right sibling in index "logged_in_uid"
STATEMENT:  INSERT INTO logged_in (orgid, uid, remote_addr,
orig_session_id, new_session_id) VALUES ('394746', '1125200',
'24.251.180.193', 'c2f5bfe61be2ea80548c46c156f2242d',
'2e777119d2bf0d5e35b653b80f3804e8');
LOG:  server process (PID 27524) was terminated by signal 6: Aborted
LOG:  terminating any other active server processes
When I run against an 8.3.8 database I do not.  It takes days to see
this error and it scrams whatever indexer is running at the time.  for
now I don't have time to do a lot of testing, but if anyone wants me
to try anything to track it down or something I'm all ears.  And
possibly left thumbs.
			
		Scott Marlowe <scott.marlowe@gmail.com> writes:
> I get this running mnogosearch against my 8.4.1 database consistently:
> PANIC:  failed to add item to the right sibling in index "logged_in_uid"
Huh.  Don't suppose you can extract a reproducible test case ;-).
What are the exact definitions of the table and index?
            regards, tom lane
			
		On Fri, Nov 20, 2009 at 2:33 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Scott Marlowe <scott.marlowe@gmail.com> writes:
>> I get this running mnogosearch against my 8.4.1 database consistently:
>> PANIC:  failed to add item to the right sibling in index "logged_in_uid"
>
> Huh.  Don't suppose you can extract a reproducible test case ;-).
> What are the exact definitions of the table and index?
Oh hey, whaddya know, the problem was a symptom that showed up in
mnogosearch, but it came from our stats database.
\d logged_in
                                           Table "public.logged_in"
     Column      |           Type           |
  Modifiers
-----------------+--------------------------+------------------------------------------------------------------
 logged_in_id    | integer                  | not null default
nextval('logged_in_logged_in_id_seq'::regclass)
 uid             | integer                  |
 timestamp       | timestamp with time zone | default now()
 remote_addr     | text                     |
 orgid           | integer                  |
 orig_session_id | text                     |
 new_session_id  | text                     |
 logout_reason   | text                     |
Indexes:
    "logged_in_id" PRIMARY KEY, btree (logged_in_id)
    "logged_in_timestamp" btree ("timestamp")
    "logged_in_uid" btree (uid)
Problem is we insert 125k rows a day and get that signal 6 every one
to four days.  So a reproduceable test case may involved insertinto
400k or more rows to make it happen.  I'll see what I can do.
			
		Scott Marlowe <scott.marlowe@gmail.com> writes:
>>> I get this running mnogosearch against my 8.4.1 database consistently:
>>> PANIC: �failed to add item to the right sibling in index "logged_in_uid"
Hmm, if uid is an integer then all the index entries will be the same
size, which eliminates my first theory about there being some corner
case where we're (still) choosing an infeasible split point.  Can you
comment about the insertion pattern for uid's --- are they ever-increasing
for instance?  Do you have any special properties such as fillfactor set
on that index?
            regards, tom lane
			
		On Fri, Nov 20, 2009 at 3:15 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Scott Marlowe <scott.marlowe@gmail.com> writes: >>>> I get this running mnogosearch against my 8.4.1 database consistently: >>>> PANIC: failed to add item to the right sibling in index "logged_in_uid" > > Hmm, if uid is an integer then all the index entries will be the same > size, which eliminates my first theory about there being some corner > case where we're (still) choosing an infeasible split point. Can you > comment about the insertion pattern for uid's --- are they ever-increasing > for instance? Do you have any special properties such as fillfactor set > on that index? Access is pretty random actually, and fill factor on this database is 100% because it doesn't really get updated, just appended to. There are a lot of parallel insertions going on if that helps.
Scott Marlowe <scott.marlowe@gmail.com> writes:
> Access is pretty random actually, and fill factor on this database is
> 100% because it doesn't really get updated, just appended to.  There
> are a lot of parallel insertions going on if that helps.
Do you mean you actually have fillfactor set somewhere?  It didn't show
on the \d output.
Is this a 32-bit or 64-bit machine?
            regards, tom lane
			
		On Fri, Nov 20, 2009 at 4:03 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Scott Marlowe <scott.marlowe@gmail.com> writes: >> Access is pretty random actually, and fill factor on this database is >> 100% because it doesn't really get updated, just appended to. There >> are a lot of parallel insertions going on if that helps. > > Do you mean you actually have fillfactor set somewhere? It didn't show > on the \d output. No, I just assumed it was 100% still by default. Did that change? > Is this a 32-bit or 64-bit machine? 64 bit. Centos / RHEL 5.3 running the -95 or so Centos 5.2 kernel because later kernels cause problems with the Areca 1680 series RAID array controller kicking offline at odd times