Can't start JMX with Java 17 - any possible workaround?

Hi!
Would you mind to do some checks?

For me it is working perfectly

http://localhost:1080/whois/test/inetnum/10.11.11.0/24

I am able to make it works using telnet localhost 1043 as well.

However, I can reproduce your problem breaking the schemas. I suggest you to use the “test” databases in the properties files (in my case) something like acl.database.url=jdbc:mysql://localhost/test_1687786336471_acd912419f2ba4240be58185ba39490c_ACL

test_1687786336471_acd912419f2ba4240be58185ba39490c_ACL |
| test_1687786336471_acd912419f2ba4240be58185ba39490c_INTERNALS |
| test_1687786336471_acd912419f2ba4240be58185ba39490c_MAILUPDATES |
| test_1687786336471_acd912419f2ba4240be58185ba39490c_NRTM |
| test_1687786336471_acd912419f2ba4240be58185ba39490c_WHOIS

And try again. If the problem is fixed, it is 100% schema problem.

This is probably because the log4j2.xml is not properly configured (I see the documentation is wrong and is pointing to a non existing file). whois.jar seems working for me, I think that the main problem is the outdated documentation (I am already fixing it)

I was facing the same issue before fixing the driver, now I can see the beans behind whois domain always. This happens because whois didn’t start correctly, and it was not able to load all the beans.

Hi Miguel,

i tried with test databases, and it works (well, at least i’m getting the proper 101 error informing that there is no resource registered or an XML saying the same over API port - this is okay seems :+1: )

well, should i try to reinstall database / rerun the whois tests to fix the issue with the schema?

Hi!
I think that It would not be necessary.
To find out which is the schema that is broken, you can try swapping the properties. I mean use WHOIS_LOCAL, INTERNALS_LOCAL…etc but use the ACL test schema.
I think WHOIS_LOCAL is ok because you have the data there (If that schema was wrong, the dump should have failed).
So as I can see there are two options: on one hand try one by one the schemas in the property file, on the other hand compare “test” schemas with “local” but there are a lot of tables so I suggest the first one.
Once you know where is the problem drop that database and create again, go inside the database and run the correspondent .sql from

whois-commons/src/main/resources

If you want to try a 200, you can use 0/0

Hi Miguel,

thank you very much!, seems i was able to find and fix the broken databases:

seem my next step would be to download the real DB snapshot,
may i do it now or better to fix that issue with strange startup logs ?

Hi!
For fixing the logs problem, use this xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration  packages="org.apache.logging.log4j.core,io.sentry.log4j2">

    <Appenders>

        <RollingFile name="CONSOLE"
                     append="true"
                     fileName="var/whois.log"
                     filePattern="var/whois.%d{yyyyMMdd}.%i.log.gz"
                     ignoreExceptions="false">
            <PatternLayout pattern="%d{ISO8601} %-5p [%c{1}] %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="100MB" />
            </Policies>
        </RollingFile>
        
        <Sentry name="SENTRY" minimumBreadcrumbLevel="WARN" minimumEventLevel="WARN" />
        
        <RollingFile name="DOSFILTER"
                     append="true"
                     filePattern="var/log/dos/dosfilter.%d{yyyyMMdd}"
                     ignoreExceptions="false">
            <ThresholdFilter level="info"/>
            <PatternLayout>
                <Pattern>%d{ISO8601} %-5p [%c{1}] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <RollingFile name="QUERYLOG"
                     append="true"
                     filePattern="var/log/qry/qrylog.%d{yyyyMMdd}"
                     ignoreExceptions="false">
            <ThresholdFilter level="debug"/>
            <PatternLayout>
                <Pattern>%d{yyyyMMdd HH:mm:ss} %replace{%m}{password=(\S*)(\s)}{password=FILTERED }%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <RollingFile name="UPDATELOG"
                     append="true"
                     filePattern="var/log/upd/updlog.%d{yyyyMMdd}"
                     ignoreExceptions="false">
            <ThresholdFilter level="debug"/>
            <PatternLayout>
                <Pattern>%d{yyyyMMdd HH:mm:ss} %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <RollingFile name="NRTMLOG"
                     append="true"
                     filePattern="var/log/nrtm/nrtmlog.%d{yyyyMMdd}"
                     ignoreExceptions="false">
            <ThresholdFilter level="debug"/>
            <PatternLayout>
                <Pattern>%d{yyyyMMdd HH:mm:ss} %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <RollingFile name="REQUESTLOG"
                     append="true"
                     filePattern="var/log/jetty/requestlog.%d{yyyy-MM-dd}"
                     ignoreExceptions="false">
            <ThresholdFilter level="debug"/>
            <PatternLayout>
                <Pattern>%d{yyyyMMdd HH:mm:ss} %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

    </Appenders>

    <!-- Loggers -->
    <Loggers>

        <Logger name="org.eclipse.jetty.servlets.DoSFilter" level="all" additivity="false">
            <AppenderRef ref="DOSFILTER"/>
        </Logger>

        <Logger name="net.ripe.db.whois.query.handler.WhoisLog" level="all" additivity="false">
            <AppenderRef ref="QUERYLOG"/>
        </Logger>

        <Logger name="net.ripe.db.whois.update.log.UpdateLog" level="all" additivity="false">
            <AppenderRef ref="UPDATELOG"/>
        </Logger>

        <Logger name="net.ripe.db.whois.nrtm.NrtmLog" level="all" additivity="false">
            <AppenderRef ref="NRTMLOG"/>
        </Logger>

        <Logger name="org.eclipse.jetty.server.RequestLog" level="all" additivity="false">
            <AppenderRef ref="REQUESTLOG"/>
        </Logger>

        <Logger name="com.hazelcast" level="warn"/>

        <Logger name="com.mchange.v2.resourcepool.BasicResourcePool" level="error">
            <!-- [ES] don't log warnings on failure to create pool connections, errors logged from services already -->
        </Logger>

        <Logger name="net.ripe" level="info"/>

        <Logger name="net.ripe.db.whois.common.iptree.IpTreeCacheManager" level="warn"/>

        <!-- TODO: don't think we need this one anymore -->
        <Logger name="net.ripe.db.whois.api.transfer" level="debug"/>

        <Logger name="org.eclipse.jetty.http.HttpParser" level="error">
            <!-- do not log parse errors (e.g. invalid UTF8) -->
        </Logger>

        <Logger name="net.ripe.db.whois.api.rdap.WhoisRdapService" level="error">
            <!-- don't log RDAP info -->
        </Logger>

        <Logger name="net.ripe.db.whois.api.rest.search.ManagedAttributeSearch" level="error">
            <!-- don't log invalid status -->
        </Logger>

        <Logger name="net.ripe.db.whois.api.rdap.RdapExceptionMapper" level="error">
            <!-- TODO: [ES] fix expected 429 Too Many Requests -->
        </Logger>

        <Logger name="net.ripe.db.whois.query.planner.AbuseCFinder" level="error">
            <!-- TODO: [ES] dont log warnings for now -->
        </Logger>

        <Logger name="net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectDao" level="error">
            <!-- TODO: [ES] hide 'Objects not found' messages until next Whois release -->
        </Logger>

        <!-- TODO: [ES] check whether RetryFor is still working -->
        <Logger name="net.ripe.db.whois.common.aspects.RetryForAspect" level="debug"/>

        <!-- TODO: [ES] ignore messages about elasticsearch not running -->
        <Logger name="net.ripe.db.whois.api.elasticsearch.ElasticIndexService" level="warn"/>

        <Root level="info">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="SENTRY"/>
        </Root>
    </Loggers>

</Configuration>

and instead of whois.init start use:

/usr/bin/java -Dwhois -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/tmp -XX:ErrorFile=var/hs_err_pid%p.log -Djsse.enableSNIExtension=false -Dcom.sun.management.jmxremote -Dhazelcast.jmx=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099 -Xms1024m -Xmx8g -Dwhois.config=properties -Duser.timezone=UTC -Dhazelcast.config=hazelcast.xml -Dlog4j.configurationFile=file:log4j2.xml -jar whois.jar

-Dlog4j.configurationFile=file:log4j2.xml should have the same name than the log file.

This should create all logs that you need inside var/ folder

Hi Miguel,

sorry to distract with such a question,
i’m trying to download DB snapshot, but getting file-size error:

=======================

Welcome to JMX terminal. Type “help” for available commands.
$>jvms
3814 ( ) - jmxterm-1.0.4-uber.jar
3743 (m) - whois.jar
$>open 3743
#Connection to 3743 is opened
$>bean net.ripe.db.whois:name=Bootstrap
#bean is set to net.ripe.db.whois:name=Bootstrap
$>run loadDump initialimport /home/maxim/Downloads/ripe.db.gz
#calling operation loadDump of mbean net.ripe.db.whois:name=Bootstrap with params [initialimport, /home/maxim/Downloads/ripe.db.gz]
#operation returns:

java.lang.IllegalArgumentException: Max total files’ size should not be more than 15 MB,
but supplied files have a total size of 347.46 MB.

Ran in transactional, safe mode: rolling back DB changes
FINISHED
0 succeeded
0 failed in pass 1
0 failed in pass 2

$>

=========================

checked many forums.threads, 99% they refer to spring boots settings, which i’m unable to find (application.properties), but few says there could be some limits within the app itself, could you kindly have a look, may be there are some settings in the Whois project are involved?

Hi!
No worries.
In LoaderSafe class there is a constant (maybe should be a configurable parameter from properties instead, I will check that with the team) that constant is setting that 15MB maximum.
Update TOTAL_SIZE_LIMIT_IN_MB from this LoaderSafe class to 400, and create a new whois.jar running.

mvn clean install -DskipTests -Prelease

Let me know if that fixes your problem.

Hi Miguel!,

it ‘healed’ the issue with file size :+1:, but another had arised:

==========================

$>run loadDump initialimport /home/maxim/Downloads/ripe.db.gz
#calling operation loadDump of mbean net.ripe.db.whois:name=Bootstrap with params [initialimport, /home/maxim/Downloads/ripe.db.gz]
#operation returns:
Error in pass 1 in ‘[role] ROLE-RIPE ROLE Account of NETwork.ORGanization’: java.lang.IllegalStateException: Object with type: 11 and pkey: ROLE-RIPE already exists
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectOperations.insertIntoLast(JdbcRpslObjectOperations.java:296)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectOperations.insertIntoLastAndUpdateSerials(JdbcRpslObjectOperations.java:252)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao.createObject_aroundBody14(JdbcRpslObjectUpdateDao.java:228)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao$AjcClosure15.run(JdbcRpslObjectUpdateDao.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao.createObject(JdbcRpslObjectUpdateDao.java:227)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObject(ObjectLoader.java:105)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObjectSafe_aroundBody0(ObjectLoader.java:79)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader$AjcClosure1.run(ObjectLoader.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObjectSafe(ObjectLoader.java:77)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.processObject(ObjectLoader.java:73)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.runPassSafe(LoaderSafe.java:98)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles_aroundBody0(LoaderSafe.java:57)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe$AjcClosure1.run(LoaderSafe.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles(LoaderSafe.java:49)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles(LoaderSafe.java:34)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap.loadTextDump(Bootstrap.java:78)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap.loadTextDumpSafe(Bootstrap.java:68)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap$$FastClassBySpringCGLIB$$a8a32344.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap$$EnhancerBySpringCGLIB$$d42d1ee.loadTextDumpSafe()
at net.ripe.db.whois.scheduler.task.loader.BootstrapJmx.lambda$0(BootstrapJmx.java:33)
at net.ripe.db.whois.common.jmx.JmxBase.invokeOperation(JmxBase.java:24)
at net.ripe.db.whois.scheduler.task.loader.BootstrapJmx.loadDump(BootstrapJmx.java:33)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:262)
at java.management/javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1178)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.management/javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1172)
at java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1016)
at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1310)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1405)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

net.ripe.db.whois.update.handler.UpdateAbortedException
Ran in transactional, safe mode: rolling back DB changes
FINISHED
0 succeeded
1 failed in pass 1
0 failed in pass 2

$>

==========================

Easy one!
Clean the WHOIS_LOCAL database or delete that object from the database

We do not allow to have two object with same pkey!
The object that you are adding may already exist in TEST.db (I mean if the pkey is a generic one like ROLE-RIPE).

So please, clean the database and try again!

Okk, i tried to truncate tables, then delete databases but still the same…
may be it appears somehow twice in the database snapshot?..

here tables left after deletion of everything possibly related to Whois_Local and test environment, and the same message displayed:

==========================================

MariaDB [(none)]> show databases;
±----------------------+
| Database |
±----------------------+
| ACL_LOCAL |
| INTERNALS_LOCAL |
| LOCAL |
| MAILUPDATES_LOCAL |
| NRTM |
| VERSIONS |
| WHOIS_MIRROR_RIPE_GRS |
| dnscheck_local |
| information_schema |
| mysql |
| performance_schema |
| sys |
±----------------------+
12 rows in set (0,000 sec)

MariaDB [(none)]> ^DBye
root@RIPE:/home/maxim/whois#
root@RIPE:/home/maxim/whois# service mysql stop
root@RIPE:/home/maxim/whois# ./whois.init stop
whois does not seem to be running
Running java processes:
root@RIPE:/home/maxim/whois# service mysql start
root@RIPE:/home/maxim/whois# ./whois.init start
Starting whois…
root@RIPE:/home/maxim/whois# java --add-exports jdk.jconsole/sun.tools.jconsole=ALL-UNNAMED -jar jmxterm-1.0.4-uber.jar
Delete /root/.jmxterm_history if you encounter error right after launching me.
Welcome to JMX terminal. Type “help” for available commands.
$>jvms
5332 ( ) - jmxterm-1.0.4-uber.jar
5160 (m) - whois.jar
$>open 5160
#Connection to 5160 is opened
$>bean net.ripe.db.whois:name=Bootstrap
#bean is set to net.ripe.db.whois:name=Bootstrap
$>run loadDump initialimport /home/maxim/Downloads/ripe.db.gz
#calling operation loadDump of mbean net.ripe.db.whois:name=Bootstrap with params [initialimport, /home/maxim/Downloads/ripe.db.gz]
#operation returns:
Error in pass 1 in ‘[role] ROLE-RIPE ROLE Account of NETwork.ORGanization’: java.lang.IllegalStateException: Object with type: 11 and pkey: ROLE-RIPE already exists
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectOperations.insertIntoLast(JdbcRpslObjectOperations.java:296)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectOperations.insertIntoLastAndUpdateSerials(JdbcRpslObjectOperations.java:252)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao.createObject_aroundBody14(JdbcRpslObjectUpdateDao.java:228)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao$AjcClosure15.run(JdbcRpslObjectUpdateDao.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.common.dao.jdbc.JdbcRpslObjectUpdateDao.createObject(JdbcRpslObjectUpdateDao.java:227)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObject(ObjectLoader.java:105)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObjectSafe_aroundBody0(ObjectLoader.java:79)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader$AjcClosure1.run(ObjectLoader.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.addObjectSafe(ObjectLoader.java:77)
at net.ripe.db.whois.scheduler.task.loader.ObjectLoader.processObject(ObjectLoader.java:73)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.runPassSafe(LoaderSafe.java:98)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles_aroundBody0(LoaderSafe.java:57)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe$AjcClosure1.run(LoaderSafe.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles(LoaderSafe.java:49)
at net.ripe.db.whois.scheduler.task.loader.LoaderSafe.loadSplitFiles(LoaderSafe.java:34)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap.loadTextDump(Bootstrap.java:78)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap.loadTextDumpSafe(Bootstrap.java:68)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap$$FastClassBySpringCGLIB$$a8a32344.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)
at net.ripe.db.whois.scheduler.task.loader.Bootstrap$$EnhancerBySpringCGLIB$$5097a12d.loadTextDumpSafe()
at net.ripe.db.whois.scheduler.task.loader.BootstrapJmx.lambda$0(BootstrapJmx.java:33)
at net.ripe.db.whois.common.jmx.JmxBase.invokeOperation(JmxBase.java:24)
at net.ripe.db.whois.scheduler.task.loader.BootstrapJmx.loadDump(BootstrapJmx.java:33)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:262)
at java.management/javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1178)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.management/javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1172)
at java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1016)
at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1310)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1405)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

net.ripe.db.whois.update.handler.UpdateAbortedException
Ran in transactional, safe mode: rolling back DB changes
FINISHED
0 succeeded
1 failed in pass 1
0 failed in pass 2

$>

===========================================

Morning!
I see in your schemas that WHOIS_LOCAL is missing, could you add it. (I think that you named LOCAL). I meant to say to restart WHOIS_LOCAL, not to remove it.

$ zgrep "nic-hdl:        ROLE-RIPE" ripe.db.gz
nic-hdl:        ROLE-RIPE
nic-hdl:        ROLE-RIPE

Something bad is going on in that dump file. We need to review the creation of that file, it should not contain duplicated Nic-hdl.

Could you remove this object from your local ripe.db.gz and try it one more time? I checked and just that one is duplicated

role:           Placeholder Role Object
address:        RIPE Network Coordination Centre
address:        P.O. Box 10096
address:        1001 EB Amsterdam
address:        The Netherlands
phone:          +31 20 535 4444
e-mail:         ripe-dbm@ripe.net
admin-c:        DUMY-RIPE
tech-c:         DUMY-RIPE
nic-hdl:        ROLE-RIPE
mnt-by:         RIPE-DBM-MNT
remarks:        **********************************************************
remarks:        * This is a placeholder object to protect personal data.
remarks:        * To view the original object, please query the RIPE
remarks:        * Database at:
remarks:        * http://www.ripe.net/whois
remarks:        **********************************************************
created:        2009-07-24T17:00:00Z
last-modified:  2009-07-24T17:00:00Z
source:         RIPE

Thanks!
Miguel.

Hi Miguel!,

thank’s a lot!, there were 2 objects, one has a word “Placeholder” in it’s name and i decided better to delete it. After deletion i was able to start but after about 3,5 - 4 hours got another error:

================

$>bean net.ripe.db.whois:name=Bootstrap
#bean is set to net.ripe.db.whois:name=Bootstrap
$>run loadDump initialimport /home/maxim/Downloads/ripe.db.gz
#calling operation loadDump of mbean net.ripe.db.whois:name=Bootstrap with params [initialimport, /home/maxim/Downloads/ripe.db.gz]
#operation returns:
Error in pass 2 in ‘[route] 195.226.224.0/19AS9155’: java.lang.IllegalArgumentException: Missing references: [RS-QNET]

……

net.ripe.db.whois.update.handler.UpdateAbortedException
Ran in transactional, safe mode: rolling back DB changes
FINISHED
155578 succeeded
0 failed in pass 1
1 failed in pass 2

$>

================

i was about to delete that route object also, but got afraid to spoil more other objects (same address space have couple of inetnum objects f.e.), and be snowed up with the ‘domino effect’ :slight_smile:

What would you advise, what could be done?

Hi!
Just delete that attribute from those route objects

route: 195.226.224.0/19
route: 195.39.128.0/18
route: 213.189.64.0/19

These are the route objects affected, we will get rid of them as well from our side.
It is not a required attribute.

Regards!
Miguel

Hi Miguel,

yep tried, now this one:

guess, i’ll delete the whole aahmoye-mnt obj

Hi!
Just checked, it is an unreferenced mnt.

fgrep "aahmoye-mnt" ripe.db
mntner:         aahmoye-mnt

You can remove it, yes

Morning!
I was able to load the dump in my local database yesterday without further changes.
Are you still facing issues with it?

Regards!
Miguel

Hi Miguel, good morning!

well, i’m trying to upload now, i started once right after removing “aahmoye-mnt”, but in about 18 hours of uploading my linux machine hanged on.
I restarted, launched the upload again and now it’s been uploading for about 15 hours already.

i have a very weak machine, laptop with Win 11 => Virtual Box => Ubuntu 22.04, only 8 GB RAM/140 GB disk. I know that is less then recommended… I’m ok to wait, but if that may cause hangings, i’m a bit stuck.

Hi Miguel,

once again, i just got the system hanged up, after 17 hours of uploading, seems several minutes before finishing dump upload.
I’m checking Ubuntu logs, but seems there are 2 errors, appearing right before the crash in the console.log:

=======================
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
ERROR StatusLogger Reconfiguration failed: No configuration found for ‘Default’ at ‘null’ in ‘null’
ERROR StatusLogger Reconfiguration failed: No configuration found for ‘251a69d7’ at ‘null’ in ‘null’

=======================

i checked some threads related to it, they all refer to log4j2.xml, i have many of such files:

=======================
root@RIPE:/home/maxim/whois# find / -name “log4j2
/home/dbase/whois/tools/log4j2.xml
/home/dbase/whois/whois-update/target/test-classes/log4j2.xml
/home/dbase/whois/whois-update/src/test/resources/log4j2.xml
/home/dbase/whois/whois-api/target/test-classes/log4j2.xml
/home/dbase/whois/whois-api/src/test/resources/log4j2.xml
/home/dbase/whois/whois-commons/target/test-classes/log4j2.xml
/home/dbase/whois/whois-commons/src/test/resources/log4j2.xml
/home/dbase/whois/whois-endtoend/target/test-classes/log4j2.xml
/home/dbase/whois/whois-endtoend/src/test/resources/log4j2.xml
/home/maxim/whois/tools/log4j2.xml
/home/maxim/whois/whois-update/target/test-classes/log4j2.xml
/home/maxim/whois/whois-update/src/test/resources/log4j2.xml
/home/maxim/whois/whois-api/target/test-classes/log4j2.xml
/home/maxim/whois/whois-api/src/test/resources/log4j2.xml
/home/maxim/whois/whois-commons/target/test-classes/log4j2.xml
/home/maxim/whois/whois-commons/src/test/resources/log4j2.xml
/home/maxim/whois/whois-endtoend/target/test-classes/log4j2.xml
/home/maxim/whois/whois-endtoend/src/test/resources/log4j2.xml
find: ‘/run/user/1000/doc’: Permission denied
find: ‘/run/user/1000/gvfs’: Permission denied
/root/.m2/repository/io/sentry/sentry-log4j2
/root/.m2/repository/io/sentry/sentry-log4j2/6.14.0/sentry-log4j2-6.14.0.pom.sha1
/root/.m2/repository/io/sentry/sentry-log4j2/6.14.0/sentry-log4j2-6.14.0.jar
/root/.m2/repository/io/sentry/sentry-log4j2/6.14.0/sentry-log4j2-6.14.0.pom
/root/.m2/repository/io/sentry/sentry-log4j2/6.14.0/sentry-log4j2-6.14.0.jar.sha1
root@RIPE:/home/maxim/whois#

=======================

but f.e. here is the one of: “/home/dbase/whois/tools/log4j2.xml”:

======================

<?xml version="1.0" encoding="UTF-8"?>
<!-- Appenders -->
<Appenders>
    <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{ISO8601} %-5p [%c{1}] %m%n"/>
    </Console>
</Appenders>

<!-- Loggers -->
<Loggers>

    <Logger name="net.ripe" level="info"/>

    <Logger name="net.ripe.db.whois.common.pipeline.EventLogger" level="debug"/>

    <Logger name="net.ripe.db.whois.common.pipeline.ExceptionHandler" level="debug"/>

    <!-- For debugging resourcehandler -->
    <Logger name="org.eclipse.jetty" level="debug"/>

    <!-- C3PO does A LOT of surplus logging in DEBUG -->
    <Logger name="com.mchange" level="info"/>

    <Root level="info">
        <AppenderRef ref="CONSOLE"/>
    </Root>
</Loggers>

======================

is it ok with it?

Hi!
This log configuration will not generate any whois.log but if you are ok with it, go ahead. Maybe the main problem that you have is precisely that generated file.
Log should be pushed directly to you console anyways.

Hi Miguel, good morning!,

i was able to upload the DB snapshot (it took my laptop 4 days of instant work, but the issue is only my machine config) and tried to continue with NRTM

i followed the setup procedure as described:

and

for DB (dump, tables update) and NRTM config in properties, but whois can’t start now, i tried to rebuild it, but the picture stays he same, would you kindly have a glance if possible?

start logs:

====================

root@RIPE:/home/maxim/whois# /usr/bin/java -Dwhois -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/tmp -XX:ErrorFile=var/hs_err_pid%p.log -Djsse.enableSNIExtension=false -Dcom.sun.management.jmxremote -Dhazelcast.jmx=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099 -Xms1024m -Xmx8g -Dwhois.config=properties -Duser.timezone=UTC -Dhazelcast.config=hazelcast.xml -Dlog4j.configurationFile=file:log4j2.xml -jar whois.jar
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2023-07-13T07:26:36,736 INFO [WhoisRipePropertyResolver] Instance name is RIPE
2023-07-13T07:26:37,443 INFO [MLog] MLog clients using slf4j logging.
2023-07-13T07:26:37,516 INFO [C3P0Registry] Initializing c3p0-0.9.5.5 [built 11-December-2019 22:18:33 -0800; debug? true; trace: 10]
2023-07-13T07:26:37,904 WARN [DefaultSourceContext] GRS Source already configured: RIPE-GRS
2023-07-13T07:26:37,904 INFO [DefaultSourceContext] Using sources: [LOCAL [MASTER], LOCAL [SLAVE], RIPE-GRS [SLAVE], RIPE-GRS [MASTER]]
2023-07-13T07:26:38,002 INFO [IpRanges] Trusted ranges: [127.0.0.1/32, ::1/128]
2023-07-13T07:26:38,008 INFO [IpRanges] Loadbalancer ranges: [127.0.0.1/32, ::1/128]
2023-07-13T07:26:38,010 WARN [MaintenanceMode] Access type change: world FULL → FULL, trusted: FULL → FULL
2023-07-13T07:26:38,085 INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement → 3, acquireRetryAttempts → 30, acquireRetryDelay → 1000, autoCommitOnClose → false, automaticTestTable → null, breakAfterAcquireFailure → false, checkoutTimeout → 0, connectionCustomizerClassName → null, connectionTesterClassName → com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource → caller, dataSourceName → z8kfsxaxlokcsfvwyjss|7fd751de, debugUnreturnedConnectionStackTraces → false, description → null, driverClass → org.mariadb.jdbc.Driver, extensions → {}, factoryClassLocation → null, forceIgnoreUnresolvedTransactions → false, forceSynchronousCheckins → false, forceUseNamedDriverClass → false, identityToken → z8kfsxaxlokcsfvwyjss|7fd751de, idleConnectionTestPeriod → 15, initialPoolSize → 3, jdbcUrl → jdbc:mysql://localhost/WHOIS_MIRROR_RIPE_GRS, maxAdministrativeTaskTime → 0, maxConnectionAge → 0, maxIdleTime → 7200, maxIdleTimeExcessConnections → 0, maxPoolSize → 100, maxStatements → 0, maxStatementsPerConnection → 0, minPoolSize → 0, numHelperThreads → 3, preferredTestQuery → SELECT 1, privilegeSpawnedThreads → false, properties → {password=, user=}, propertyCycle → 0, statementCacheNumDeferredCloseThreads → 0, testConnectionOnCheckin → false, testConnectionOnCheckout → false, unreturnedConnectionTimeout → 0, userOverrides → {}, usesTraditionalReflectiveProxies → false ]
2023-07-13T07:26:53,232 INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement → 3, acquireRetryAttempts → 30, acquireRetryDelay → 1000, autoCommitOnClose → false, automaticTestTable → null, breakAfterAcquireFailure → false, checkoutTimeout → 0, connectionCustomizerClassName → net.ripe.db.whois.common.jdbc.WhoisConnectorCustomizer, connectionTesterClassName → com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource → caller, dataSourceName → z8kfsxaxlokcsfvwyjss|965bcbc, debugUnreturnedConnectionStackTraces → false, description → null, driverClass → org.mariadb.jdbc.Driver, extensions → {}, factoryClassLocation → null, forceIgnoreUnresolvedTransactions → false, forceSynchronousCheckins → false, forceUseNamedDriverClass → false, identityToken → z8kfsxaxlokcsfvwyjss|965bcbc, idleConnectionTestPeriod → 15, initialPoolSize → 3, jdbcUrl → jdbc:mysql://localhost/ACL_LOCAL, maxAdministrativeTaskTime → 0, maxConnectionAge → 0, maxIdleTime → 7200, maxIdleTimeExcessConnections → 0, maxPoolSize → 100, maxStatements → 0, maxStatementsPerConnection → 0, minPoolSize → 0, numHelperThreads → 3, preferredTestQuery → SELECT 1, privilegeSpawnedThreads → false, properties → {password=, user=}, propertyCycle → 0, statementCacheNumDeferredCloseThreads → 0, testConnectionOnCheckin → false, testConnectionOnCheckout → false, unreturnedConnectionTimeout → 0, userOverrides → {}, usesTraditionalReflectiveProxies → false ]
2023-07-13T07:26:53,275 INFO [HazelcastInstanceManager] Creating hazelcast instance with Ripe deployed profile
2023-07-13T07:26:53,688 WARN [AddressPicker] [LOCAL] [dev] [4.2.7] You configured your member address as host name. Please be aware of that your dns can be spoofed. Make sure that your dns configurations are correct.
2023-07-13T07:26:53,688 INFO [AddressPicker] [LOCAL] [dev] [4.2.7] Resolving domain name ‘localhost’ to address(es): [127.0.0.1]
2023-07-13T07:26:53,692 INFO [AddressPicker] [LOCAL] [dev] [4.2.7] Interfaces is disabled, trying to pick one address from TCP-IP config addresses: [localhost/127.0.0.1]
2023-07-13T07:26:53,778 INFO [system] [localhost]:5701 [dev] [4.2.7] Hazelcast 4.2.7 (20230207 - 83309a6) starting at [localhost]:5701
2023-07-13T07:26:54,626 INFO [Node] [localhost]:5701 [dev] [4.2.7] Using TCP/IP discovery
2023-07-13T07:26:54,627 WARN [CPSubsystem] [localhost]:5701 [dev] [4.2.7] CP Subsystem is not enabled. CP data structures will operate in UNSAFE mode! Please note that UNSAFE mode will not provide strong consistency guarantees.
2023-07-13T07:26:54,892 INFO [Diagnostics] [localhost]:5701 [dev] [4.2.7] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
2023-07-13T07:26:54,897 INFO [LifecycleService] [localhost]:5701 [dev] [4.2.7] [localhost]:5701 is STARTING
2023-07-13T07:26:54,958 INFO [ClusterService] [localhost]:5701 [dev] [4.2.7]

Members {size:1, ver:1} [
Member [localhost]:5701 - 4f31ba46-8d74-466d-b827-2e3e169dbd4d this
]

2023-07-13T07:26:54,979 INFO [ManagementService] [localhost]:5701 [dev] [4.2.7] Hazelcast JMX agent enabled.
2023-07-13T07:26:55,042 INFO [LifecycleService] [localhost]:5701 [dev] [4.2.7] [localhost]:5701 is STARTED
2023-07-13T07:26:55,100 INFO [HazelcastPersonalObjectAccounting] hazelcast instances loving_hugle members: [Member [localhost]:5701 - 4f31ba46-8d74-466d-b827-2e3e169dbd4d this]
2023-07-13T07:26:55,316 INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement → 3, acquireRetryAttempts → 30, acquireRetryDelay → 1000, autoCommitOnClose → false, automaticTestTable → null, breakAfterAcquireFailure → false, checkoutTimeout → 0, connectionCustomizerClassName → net.ripe.db.whois.common.jdbc.WhoisConnectorCustomizer, connectionTesterClassName → com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource → caller, dataSourceName → z8kfsxaxlokcsfvwyjss|514f2020, debugUnreturnedConnectionStackTraces → false, description → null, driverClass → org.mariadb.jdbc.Driver, extensions → {}, factoryClassLocation → null, forceIgnoreUnresolvedTransactions → false, forceSynchronousCheckins → false, forceUseNamedDriverClass → false, identityToken → z8kfsxaxlokcsfvwyjss|514f2020, idleConnectionTestPeriod → 15, initialPoolSize → 3, jdbcUrl → jdbc:mysql://localhost/INTERNALS_LOCAL, maxAdministrativeTaskTime → 0, maxConnectionAge → 0, maxIdleTime → 7200, maxIdleTimeExcessConnections → 0, maxPoolSize → 100, maxStatements → 0, maxStatementsPerConnection → 0, minPoolSize → 0, numHelperThreads → 3, preferredTestQuery → SELECT 1, privilegeSpawnedThreads → false, properties → {password=, user=}, propertyCycle → 0, statementCacheNumDeferredCloseThreads → 0, testConnectionOnCheckin → false, testConnectionOnCheckout → false, unreturnedConnectionTimeout → 0, userOverrides → {}, usesTraditionalReflectiveProxies → false ]
2023-07-13T07:26:55,877 WARN [ReservedResources] is not a valid prefix, skipping…
2023-07-13T07:26:56,086 WARN [deprecation] configuration key ‘resource.loader’ has been deprecated in favor of ‘resource.loaders’
2023-07-13T07:26:56,089 WARN [deprecation] configuration key ‘classpath.resource.loader.class’ has been deprecated in favor of ‘resource.loader.classpath.class’
2023-07-13T07:26:56,266 INFO [ClientCertificateCredentialValidator] Client certificate authentication is enabled
2023-07-13T07:26:56,391 INFO [IpTreeUpdater] Rebuild IpTrees and scheduled update using sources: [RIPE-GRS [SLAVE], LOCAL [SLAVE]]
2023-07-13T07:26:56,392 INFO [IpTreeUpdater] Initializing thread pool with 2 threads
2023-07-13T07:26:56,392 INFO [IpTreeUpdater] Building IP trees
2023-07-13T07:26:56,558 INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement → 3, acquireRetryAttempts → 30, acquireRetryDelay → 1000, autoCommitOnClose → false, automaticTestTable → null, breakAfterAcquireFailure → false, checkoutTimeout → 0, connectionCustomizerClassName → null, connectionTesterClassName → com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource → caller, dataSourceName → z8kfsxaxlokcsfvwyjss|49e479da, debugUnreturnedConnectionStackTraces → false, description → null, driverClass → org.mariadb.jdbc.Driver, extensions → {}, factoryClassLocation → null, forceIgnoreUnresolvedTransactions → false, forceSynchronousCheckins → false, forceUseNamedDriverClass → false, identityToken → z8kfsxaxlokcsfvwyjss|49e479da, idleConnectionTestPeriod → 15, initialPoolSize → 3, jdbcUrl → jdbc:mysql://localhost/WHOIS_MIRROR_RIPE_GRS, maxAdministrativeTaskTime → 0, maxConnectionAge → 0, maxIdleTime → 7200, maxIdleTimeExcessConnections → 0, maxPoolSize → 100, maxStatements → 0, maxStatementsPerConnection → 0, minPoolSize → 0, numHelperThreads → 3, preferredTestQuery → SELECT 1, privilegeSpawnedThreads → false, properties → {password=, user=}, propertyCycle → 0, statementCacheNumDeferredCloseThreads → 0, testConnectionOnCheckin → false, testConnectionOnCheckout → false, unreturnedConnectionTimeout → 0, userOverrides → {}, usesTraditionalReflectiveProxies → false ]
2023-07-13T07:26:56,593 INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement → 3, acquireRetryAttempts → 30, acquireRetryDelay → 1000, autoCommitOnClose → false, automaticTestTable → null, breakAfterAcquireFailure → false, checkoutTimeout → 0, connectionCustomizerClassName → net.ripe.db.whois.common.jdbc.WhoisConnectorCustomizer, connectionTesterClassName → com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource → caller, dataSourceName → z8kfsxaxlokcsfvwyjss|506aa618, debugUnreturnedConnectionStackTraces → false, description → null, driverClass → org.mariadb.jdbc.Driver, extensions → {}, factoryClassLocation → null, forceIgnoreUnresolvedTransactions → false, forceSynchronousCheckins → false, forceUseNamedDriverClass → false, identityToken → z8kfsxaxlokcsfvwyjss|506aa618, idleConnectionTestPeriod → 15, initialPoolSize → 3, jdbcUrl → jdbc:mysql://localhost/LOCAL, maxAdministrativeTaskTime → 0, maxConnectionAge → 0, maxIdleTime → 7200, maxIdleTimeExcessConnections → 0, maxPoolSize → 100, maxStatements → 0, maxStatementsPerConnection → 0, minPoolSize → 0, numHelperThreads → 3, preferredTestQuery → SELECT 1, privilegeSpawnedThreads → false, properties → {password=, user=}, propertyCycle → 0, statementCacheNumDeferredCloseThreads → 0, testConnectionOnCheckin → false, testConnectionOnCheckout → false, unreturnedConnectionTimeout → 0, userOverrides → {}, usesTraditionalReflectiveProxies → false ]
Killed
root@RIPE:/home/maxim/whois#

====================

properties:

============

The main / default whois source (RIPE|TEST)
whois.source=LOCAL
whois.nonauth.source=TEST-NONAUTH
whois.additional.sources=

Service ports

port.query=1043
port.api=1080
port.nrtm=1081

File system locations

dir.rpsl.export=var${jvmId:}/export
dir.rpsl.export.tmp=var${jvmId:}/export_tmp
dir.rpsl.export.internal=internal
dir.rpsl.export.external=dbase_new
dir.rpsl.export.external.legacy=dbase
dir.update.audit.log=var${jvmId:}/log/audit
dir.grs.import.download=var${jvmId:}/grs
dir.fulltext.index=

API configuration

api.rest.baseurl=http://rest.db.ripe.net

Comma separated list of GRS sources

grs.sources=RIPE-GRS
grs.sources.dummify=

Comma separated list of IP ranges from which sensitive operations are accessible

ipranges.trusted=127.0.0.1,::1

Comma separated list of IP ranges from which the OSI layer2 load balancer health checks are executed from

ipranges.loadbalancer=127.0.0.1,::1

Bogon space (ref. http://www.team-cymru.com/bogon-reference.html)

ipranges.bogons=0.0.0.0/8,10.0.0.0/8,100.64.0.0/10,127.0.0.0/8,169.254.0.0/16,172.16.0.0/12,192.0.2.0/24,192.168.0.0/16,198.18.0.0/15,198.51.100.0/24,203.0.113.0/>

Mail properties

mail.smtp.enabled=true
mail.smtp.host=
mail.from=RIPE Database Administration local unread@ripe.net

mail.update.threads=2
mail.dequeue.interval=1000

mail.smtp.retrySending=true

NRTM server

nrtm.enabled=false
nrtm.update.interval=15

NRTM client

nrtm.import.enabled=true
nrtm.import.sources=RIPE-GRS
nrtm.import.RIPE-GRS.source=RIPE
nrtm.import.RIPE-GRS.host=whois.ripe.net
nrtm.import.RIPE-GRS.port=4444

RpslExport

rpsl.export.enabled=true

GRS source-specific properties to acquire dumps

grs.import.enabled=false
grs.import.sources=

whois.countrycodes=AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN>
whois.languagecodes=ab,aa,af,ak,sq,am,ar,an,hy,as,av,ae,ay,az,bm,ba,eu,be,bn,bh,bi,bs,br,bg,my,ca,ch,ce,ny,zh,cv,kw,co,cr,hr,cs,da,dv,nl,dz,en,eo,et,ee,fo,fj,fi,f>

whois.reserved.as.numbers=0,64496-131071,4200000000-4294967295

whois.maintainers.enduser=RIPE-NCC-END-MNT
whois.maintainers.legacy=RIPE-NCC-LEGACY-MNT
whois.maintainers.alloc=RIPE-NCC-HM-MNT
whois.maintainers.enum=RIPE-GII-MNT,RIPE-NCC-MNT
whois.maintainers.dbm=RIPE-DBM-MNT,RIPE-NCC-LOCKED-MNT,RIPE-DBM-STARTUP-MNT,RIPE-DBM-UNREFERENCED-CLEANUP-MNT,RIPE-ERX-MNT,RIPE-NCC-RPSL-MNT

Source aware data sources

whois.db.driver=org.mariadb.jdbc.Driver

whois.db.master.driver=net.ripe.db.whois.common.jdbc.driver.LoggingDriver
whois.db.master.url=jdbc:log:mysql://localhost/LOCAL;driver=org.mariadb.jdbc.Driver
whois.db.master.username=dbint
whois.db.master.password=

whois.db.slave.url=jdbc:mysql://localhost/LOCAL
whois.db.slave.username=dbint
whois.db.slave.password=

whois.db.grs.master.baseurl=jdbc:mysql://localhost/WHOIS_MIRROR
whois.db.grs.slave.baseurl=jdbc:mysql://localhost/WHOIS_MIRROR

Common data sources
mailupdates.database.url=jdbc:mysql://localhost/MAILUPDATES_LOCAL
mailupdates.database.username=dbint
mailupdates.database.password=

acl.database.url=jdbc:mysql://localhost/ACL_LOCAL
acl.database.username=dbint
acl.database.password=

internals.database.url=jdbc:mysql://localhost/INTERNALS_LOCAL
internals.database.username=dbint
internals.database.password=

internals.slave.database.url=jdbc:mysql://localhost/INTERNALS_LOCAL
internals.slave.database.username=dbint
internals.slave.database.password=

nrtm.database.url=jdbc:mysql://localhost/NRTM
nrtm.database.username=dbint
nrtm.database.password=

nrtm.slave.database.url=jdbc:mysql://localhost/NRTM
nrtm.slave.database.username=dbint
nrtm.slave.database.password=

nrtm.file.path=/tmp
nrtm.snapshot.window=23:00 - 05:00

#Feature Toggles
feature.toggle.changed.attr.available=true

#Dummy attributes
whois.dummy={‘auth’:‘MD5-PW $1$SaltSalt$DummifiedMD5HashValue.’, ‘tech-c’:‘DR1-TEST’, ‘admin-c’:‘DR1-TEST’}

whois.zonemaster.baseUrl=http://zonemaster-test.ripe.net:5000

client.cert.auth.enabled=true

nrtm.baseUrl= https://nrtm.db.ripe.net

RDAP properties

rdap.tnc.title=Terms and Conditions
rdap.tnc.description=This is the RIPE Database query service. The objects are in RDAP format.
rdap.tnc.linkrel=terms-of-service
rdap.tnc.linkhref=http://www.ripe.net/db/support/db-terms-conditions.pdf
rdap.tnc.linktype=application/pdf
rdap.public.baseUrl=
rdap.filter.isfiltered=true
rdap.filter.description=This output has been filtered.
rdap.filter.title=Filtered
rdap.source.description=Objects returned came from source
rdap.source.title=Source
rdap.port43=whois.ripe.net
rdap.inaccuracy_notice.linkrel=inaccuracy-report
rdap.inaccuracy_notice.title=Whois Inaccuracy Reporting
rdap.inaccuracy_notice.description=If you see inaccuracies in the results, please visit:
rdap.inaccuracy_notice.linkhref=https://www.ripe.net/contact-form?topic=ripe_dbm&show_form=true

shutdown.pause.sec=0

instance.name=localhost

#spring.servlet.multipart.max-file-size=1073741824
#spring.servlet.multipart.max-request-size=1073741824

============