Ignite Startup Warnings

classic Classic list List threaded Threaded
8 messages Options
Paolo Bazzi Paolo Bazzi
Reply | Threaded
Open this post in threaded view
|

Ignite Startup Warnings

Hi all,

I've getting a series of logger warnings when I startup an Ignite instance.
I could get rid of most of them by changing my configuration (e.g. setting a
default non-logging CheckpointSpi or non-logging  CollisionSpi
implementation) or by adding VM parameters (avoid Java9 module access
warnings).

Now I've two remaining warnings which I was not able to deactivate (even as
I use an almost default configuration):

*Log 1: 2021-02-01 18:57:00,195 WARN  []
org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.warning(Slf4jLogger.java:127)
- DataRegionConfiguration.maxWalArchiveSize instead
DataRegionConfiguration.walHistorySize would be used for removing old
archive wal files - MDC[]
*
-> I'm not using a specific DataStorageConfiguration instance
-> Even if I add a custom DataStorageConfiguration, I'm not able to suppress
this warning if I just want to use the default MaxWalArchiveSize parameter
value.

Whats the intension of this check and how should the
DataStorageConfiguration be configured to avoid any warnings:

org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager#checkWalArchiveSizeConfiguration

-> If I do not set any values and uses a default empty config, I get the
warning above
-> If I set just the deprected value != default, I get the deprecation
warning
-> If I set both values, I get no warnings, but a checked exception

Bug?

*Log 2: 2021-02-01 18:57:03,068 WARN  []
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.warning(Slf4jLogger.java:127)
- Logging at INFO level without checking if INFO level is enabled: Cluster
state was changed from ACTIVE to ACTIVE - MDC[]
*
-> Any options to avoid this warning?

Origin:
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor#onStateFinishMessage

Thanks Paolo




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
akorensh akorensh
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

This post was updated on .
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

In reply to this post by Paolo Bazzi
Hello!

The second one is clearly also a bug. You can sidestep it by setting log level to INFO.

Regards,
--
Ilya Kasnacheev


пн, 1 февр. 2021 г. в 22:44, Paolo Bazzi <[hidden email]>:
Hi all,

I've getting a series of logger warnings when I startup an Ignite instance.
I could get rid of most of them by changing my configuration (e.g. setting a
default non-logging CheckpointSpi or non-logging  CollisionSpi
implementation) or by adding VM parameters (avoid Java9 module access
warnings).

Now I've two remaining warnings which I was not able to deactivate (even as
I use an almost default configuration):

*Log 1: 2021-02-01 18:57:00,195 WARN  []
org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.warning(Slf4jLogger.java:127)
- DataRegionConfiguration.maxWalArchiveSize instead
DataRegionConfiguration.walHistorySize would be used for removing old
archive wal files - MDC[]
*
-> I'm not using a specific DataStorageConfiguration instance
-> Even if I add a custom DataStorageConfiguration, I'm not able to suppress
this warning if I just want to use the default MaxWalArchiveSize parameter
value.

Whats the intension of this check and how should the
DataStorageConfiguration be configured to avoid any warnings:

org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager#checkWalArchiveSizeConfiguration

-> If I do not set any values and uses a default empty config, I get the
warning above
-> If I set just the deprected value != default, I get the deprecation
warning
-> If I set both values, I get no warnings, but a checked exception

Bug?

*Log 2: 2021-02-01 18:57:03,068 WARN  []
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.warning(Slf4jLogger.java:127)
- Logging at INFO level without checking if INFO level is enabled: Cluster
state was changed from ACTIVE to ACTIVE - MDC[]
*
-> Any options to avoid this warning?

Origin:
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor#onStateFinishMessage

Thanks Paolo




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Paolo Bazzi Paolo Bazzi
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

Thanks for your replies and creating the issue.


ilya.kasnacheev wrote
> The second one is clearly also a bug. You can sidestep it by setting log
> level to INFO.

Shall I create an issue for the second one too?

Regards,
Paolo




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

Hello!

Yes, it would be great!

Regards,
--
Ilya Kasnacheev


ср, 3 февр. 2021 г. в 10:22, Paolo Bazzi <[hidden email]>:
Thanks for your replies and creating the issue.


ilya.kasnacheev wrote
> The second one is clearly also a bug. You can sidestep it by setting log
> level to INFO.

Shall I create an issue for the second one too?

Regards,
Paolo




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Paolo Bazzi Paolo Bazzi
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

ilya.kasnacheev wrote
> Yes, it would be great!

Done: https://issues.apache.org/jira/browse/IGNITE-14125

Regards, Paolo




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
tschauenberg tschauenberg
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

In reply to this post by Paolo Bazzi
Paolo,

> I could get rid of most of them by changing my configuration (e.g. setting
> a
default non-logging CheckpointSpi or non-logging  CollisionSpi
implementation)

Would you have the snippet for this config?  If they are your custom
non-logging classes are you comfortable sharing them here too?

> by adding VM parameters (avoid Java9 module access
warnings)

Could you share what VM parameters those are?  

I've been using
java --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
--illegal-access=permit -Djdk.tls.client.protocols=TLSv1.2

And I still see the warnings with Ignite 2.8.1:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by
org.apache.ignite.internal.util.GridUnsafe$2
(file:.../ignite-core-2.8.1.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of
org.apache.ignite.internal.util.GridUnsafe$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal
reflective access operations
WARNING: All illegal access operations will be denied in a future release

Thanks in advance.




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Paolo Bazzi Paolo Bazzi
Reply | Threaded
Open this post in threaded view
|

Re: Ignite Startup Warnings

Sorry for my late answer, I did not get the notification about new postings
in this thread....

Disabling checkpoint SPI logging and collision SPI logging was pretty easy:

Config:
    // ### Disable checkpoint spi using nop implementation
    config.setCheckpointSpi(new NopCheckpointSpi());

    // ### Disable collision resolution spi using nop implementation
    config.setCollisionSpi(new NopCollisionSpi());

Code see snippets below.

I use the following VM options in order to keep ignite quiet at startup:

-Djava.net.preferIPv4Stack=true
--add-opens
java.base/java.nio=ALL-UNNAMED
--add-opens
java.base/sun.nio.ch=ALL-UNNAMED
--add-opens
java.base/java.util=ALL-UNNAMED


  /**
   * No-operation implementation for {@link CheckpointSpi} similar to {@link
NoopCheckpointSpi} but without verbose WARN
   * logging.
   */
  protected static class NopCheckpointSpi implements CheckpointSpi {

    @Override
    public @Nullable byte[] loadCheckpoint(String key) throws
IgniteSpiException {
      throw new UnsupportedOperationException("not implemented");
    }

    @Override
    public boolean saveCheckpoint(String key, byte[] state, long timeout,
boolean overwrite) throws IgniteSpiException {
      throw new UnsupportedOperationException("not implemented");
    }

    @Override
    public boolean removeCheckpoint(String key) {
      throw new UnsupportedOperationException("not implemented");
    }

    @Override
    public void setCheckpointListener(CheckpointListener lsnr) {
      // NOP
    }

    @Override
    public String getName() {
      return getClass().getSimpleName();
    }

    @Override
    public Map<String, Object> getNodeAttributes() throws IgniteSpiException
{
      return null;
    }

    @Override
    public void spiStart(@Nullable String igniteInstanceName) throws
IgniteSpiException {
      // NOP
    }

    @Override
    public void onContextInitialized(IgniteSpiContext spiCtx) throws
IgniteSpiException {
      // NOP
    }

    @Override
    public void onContextDestroyed() {
      // NOP
    }

    @Override
    public void spiStop() throws IgniteSpiException {
      // NOP
    }

    @Override
    public void onClientDisconnected(IgniteFuture<?> reconnectFut) {
      // NOP
    }

    @Override
    public void onClientReconnected(boolean clusterRestarted) {
      // NOP
    }
  }

  /**
   * No-operation implementation for {@link CollisionSpi} similar to {@link
NoopCollisionSpi} but without verbose WARN
   * logging.
   */
  protected static class NopCollisionSpi implements CollisionSpi {
    @Override
    public void onCollision(CollisionContext ctx) {
      // NOP
    }

    @Override
    public void setExternalCollisionListener(@Nullable
CollisionExternalListener lsnr) {
      // NOP
    }

    @Override
    public String getName() {
      return getClass().getSimpleName();
    }

    @Override
    public Map<String, Object> getNodeAttributes() throws IgniteSpiException
{
      return null;
    }

    @Override
    public void spiStart(@Nullable String igniteInstanceName) throws
IgniteSpiException {
      // NOP
    }

    @Override
    public void onContextInitialized(IgniteSpiContext spiCtx) throws
IgniteSpiException {
      // NOP
    }

    @Override
    public void onContextDestroyed() {
      // NOP
    }

    @Override
    public void spiStop() throws IgniteSpiException {
      // NOP
    }

    @Override
    public void onClientDisconnected(IgniteFuture<?> reconnectFut) {
      // NOP
    }

    @Override
    public void onClientReconnected(boolean clusterRestarted) {
      // NOP
    }
  }


Regards,
Paolo



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/