Make initialize-database problem on Solaris 10?

Hi, folks.

When I do a make initialize-database, I get a segfault on Solaris 10:

bash-3.00$ make initialize-database
/bin/perl //home/chris/rt-3.6.1/sbin/rt-setup-database --action init
–dba root --prompt-for-dba-password
In order to create or update your RT database,this script needs to
connect to your SQLite instance on localhost as root.
Please specify that user’s database password below. If the user has no
database
password, just press return.

Password:
Now creating a database for RT.
Creating SQLite database /home/chris/rt-3.6.1/var/rt3.
Now populating database schema.
Creating database schema.
Done setting up database schema.
Now inserting database ACLs
Now inserting RT core system objects
Checking for existing system user…not found. This appears to be a new
installation.
Creating system user…make: *** [initialize-database] Segmentation
Fault (core dumped)

I’m gradually tracking it down, and I suspect it might be that one of
the C-compiled Perl modules is causing problems. I’m not sure which one.

I tracked the bug from rt-setup-database where it calls
$RT_System->_BootstrapCreate (I’m assuming in User.pm) from
insert_initial_data, to the call to
$aclstash->_CreateACLEquivalenceGroup (in Group_Overlay.pm) to its call
to $self->_Create, which calls $self->_NewTransaction, which is defined
in Record.pm. That gets as far as:

my $trans = new RT::Transaction( $self->CurrentUser );

And then the call to $trans->Create(…) appears to fail somehow.
Placing a print statement at the top of Create in Transaction.pm doesn’t
even show anything before Perl segfaults.

This happens both in standalone mode (with SQLite3 as described in the
RT book) and when trying to use Postgres – the behavior is identical.

Any ideas?

epistemological humility

  • Chris Riddoch -

Chris Riddoch wrote:

When I do a make initialize-database, I get a segfault on Solaris 10:

Yeah, I know it’s cheesy to reply to myself, but I want anyone else who
runs into this issue to have an easier time of fixing it than I did.

Running the Perl debugger, at least didn’t segfault. It complained about
the stack size and indicated that it occurred somewhere in Sys::Syslog’s
space, so I did the natural thing and changed RT’s configuration to log
directly to a file rather than through Syslog. It worked!

I still don’t know the root cause, whether it’s Solaris, syslog, Perl,
RT, Sys::Syslog, or what… but I found a workaround.

Anyway, I’m up and running now. All I’ve got to do is set up some mail
aliases.

epistemological humility

  • Chris Riddoch -