[keycloak-dev] server start up errors
Marko Strukelj
mstrukel at redhat.com
Tue Jun 21 09:18:56 EDT 2016
I don't know about availability of RHEL service script. But the log is very
clear about what happens:
2016-06-20 18:30:13,282 INFO
[org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProvider]
(ServerService Thread Pool -- 54) Initializing database schema
2016-06-20 18:30:13,351 INFO [org.jboss.as.server] (Thread-2) WFLYSRV0220:
Server shutdown has been requested.
Server shutdown is initiated while server is still in the process of
booting up.
On Tue, Jun 21, 2016 at 2:21 PM, John Dennis <jdennis at redhat.com> wrote:
> On 06/21/2016 05:27 AM, Marko Strukelj wrote:
>
>>
>>
>> On Tue, Jun 21, 2016 at 2:07 AM, John Dennis <jdennis at redhat.com
>> <mailto:jdennis at redhat.com>> wrote:
>>
>> On 06/20/2016 06:13 AM, Marko Strukelj wrote:
>>
>> The first error means that there are existing tables in the local
>> H2
>> database (under standalone/data there are keycloak.* files).
>>
>> It looks like the logic determined that they are of some previous
>> db
>> schema version, and tried to upgrade the schema to latest
>> version, but
>> unexpectedly the schema in place already seems to contain the
>> tables it
>> wasn't supposed to contain.
>>
>> I suppose that could happen if upgrade process is interrupted by
>> restarting the server?
>>
>> Since you are using the default H2 database I assume you don't
>> care
>> about any existing data. The solution for you then is to stop the
>> server, delete the database (rm standalone/data/keycloak.*), and
>> start
>> the server again.
>>
>>
>> Thank you Marko, I've got a few more questions for you.
>>
>> These errors occur during automated installation and configuration
>> via ansible.
>>
>> One of the operations performed is invoking bin/add-user-keycloak to
>> add the admin user. I seem to recall add-user-keycloak operates on
>> static files which are read during start up. Could the use of
>> add-user-keycloak trigger the schema errors seen in the log?
>>
>>
>> No.
>>
>>
>>
>> This is a brand new install so why would there be an upgrade process
>> running?
>>
>>
>> One possibility would be that the packaged installation already contains
>> standalone/data/keycloak.* files, which it shouldn't - maybe it's a
>> custom packaging you put together?
>> Another possibility is that the error does not happen on first start,
>> but on subsequent start, after server is forcefully restarted.
>>
>>
>> The ansible scripts do restart the server. Starting the server is
>> done via bin/standalone.sh but stopping the server is performed by
>> systemd sending a SIGTERM, waiting and then sending a SIGKILL (or so
>> I believe). Does the upgrade process gracefully handle SIGTERM such
>> that it continues to run until complete and then exit?
>>
>>
>> This is the most likely culprit. I don't think upgrade procedure will
>> properly complete when java process is set to shutdown no matter what
>> signal is used.
>> The shutdown should only be performed after server has reached started
>> state.
>>
>> That's when you see an entry in the log similar to:
>>
>> 11:26:41,410 INFO [org.jboss.as <http://org.jboss.as>] (Controller Boot
>> Thread) WFLYSRV0025: Keycloak 1.9.7.Final (WildFly Core 2.0.10.Final)
>> started in 10219ms - Started 416 of 782 services (526 services are lazy,
>> passive or on-demand)
>>
>
> From reading the log (I've attached a copy from another run) I think the
> server is stopping before it properly initialized. I'm not familiar with
> all your log messages but I base this conclusion on the fact "stopping"
> messages appear in the log just after the database errors, followed by this
> "stop" message:
>
> [org.jboss.as] (MSC service thread 1-4) WFLYSRV0050: rh-sso 7.0.0.GA
> (WildFly Core 2.1.2.Final-redhat-1) stopped in 2100ms
>
> The "start" message
>
> [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final-redhat-1
>
> occurs next followed by more database error messages and then finally the
> "ready to run" message you cite:
>
> [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: rh-sso 7.0.0.GA
> (WildFly Core 2.1.2.Final-redhat-1) started (with errors) in 12451ms -
> Started 473 of 839 services (2 services failed or missing dependencies, 583
> services are lazy, passive or on-demand)
>
> Question:
>
> Does the Keycloak team have a working script to start and stop the service
> in RHEL? When we first started working with Keycloak we were told no and we
> would need to cobble together something by calling the bin/standalone.sh
> script.
>
> The "wait for full initialization" problem is not new to us with daemons.
> It's come up a number of times with IPA and other daemons we work with. The
> way we've dealt with it is to have our service scripts that start and stop
> services write to one of the primary sockets and only when it gets a valid
> response back conclude the service is in fact up (handling timeouts of
> course). Systemd came along later and might have some support for socket
> detection, I'll investigate that option.
>
> We really need a script that can start and stop the service reliably
> without errors.
>
>
> --
> John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-dev/attachments/20160621/786ce971/attachment.html
More information about the keycloak-dev
mailing list