Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignite Getting started guide for Java missing something (gives errors) #11334

Open
patrickptibco opened this issue Apr 29, 2024 · 2 comments
Open

Comments

@patrickptibco
Copy link

Following the Getting Started guide for SQL I got everything to work

Following the Getting Started guide for Java, by contrast, leads me to this error. Clearly the guide is missing something and it needs to be updated.

Steps to reproduce

  1. Follow guide for Java to install ignite in $IGNITE_HOME
  2. Follow guide for Java to launch $IGNITE_HOME/bin/ignite.sh $IGNITE_HOME/examples/config/example-ignite.xml
  3. Follow guide for Java to create a maven project in Eclipse. Mine is https://github.com/patrickptibco/ignite-getting-started
  4. Launch the client (My eclipse launcher config is https://github.com/patrickptibco/ignite-getting-started/blob/main/HelloWorldIgnite.launch)

Expected output

No error

Actual Output

Error

Apr 29, 2024 3:26:58 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Failed to resolve default logging config file: config/java.util.logging.properties
[15:26:58]    __________  ________________ 
[15:26:58]   /  _/ ___/ |/ /  _/_  __/ __/ 
[15:26:58]  _/ // (7 7    // /  / / / _/   
[15:26:58] /___/\___/_/|_/___/ /_/ /x___/  
[15:26:58] 
[15:26:58] ver. 2.16.0#20231215-sha1:7bde6a42
[15:26:58] 2023 Copyright(C) Apache Software Foundation
[15:26:58] 
[15:26:58] Ignite documentation: https://ignite.apache.org
[15:26:58] 
[15:26:58] Quiet mode.
[15:26:58]   ^-- Logging by 'JavaLogger [quiet=true, config=null]'
[15:26:58]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat}
[15:26:58] 
[15:26:58] OS: Linux 4.18.0-513.9.1.el8_9.x86_64 amd64
[15:26:58] VM information: OpenJDK Runtime Environment 17.0.10+7 Eclipse Adoptium OpenJDK 64-Bit Server VM 17.0.10+7
[15:26:58] Please set system property '-Djava.net.preferIPv4Stack=true' to avoid possible problems in mixed environments.
[15:26:58] Configured plugins:
[15:26:58]   ^-- None
[15:26:58] 
[15:26:58] Configured failure handler: [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]]]
[15:26:58] Initial heap size is 500MB (should be no less than 512MB, use -Xms512m -Xmx512m).
[15:26:59] Message queue limit is set to 0 which may lead to potential OOMEs when running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to message queues growth on sender and receiver sides.
[15:26:59] REST protocols do not start on client node. To start the protocols on client node set '-DIGNITE_REST_START_ON_CLIENT=true' system property.
[15:27:01] Security status [authentication=off, sandbox=off, tls/ssl=off]
[15:27:01] Performance suggestions for grid  (fix if possible)
[15:27:01] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true
[15:27:01]   ^-- Switch to the most recent 11 JVM version
[15:27:01]   ^-- Specify JVM heap max size (add '-Xmx<size>[g|G|m|M|k|K]' to JVM options)
[15:27:01]   ^-- Set max direct memory size if getting 'OOME: Direct buffer memory' (add '-XX:MaxDirectMemorySize=<size>[g|G|m|M|k|K]' to JVM options)
[15:27:01]   ^-- Speed up flushing of dirty pages by OS (alter vm.dirty_expire_centisecs parameter by setting to 500)
[15:27:01]   ^-- Reduce pages swapping ratio (set vm.swappiness=10 or less)
[15:27:01] Refer to this page for more performance suggestions: https://ignite.apache.org/docs/latest/perf-and-troubleshooting/memory-tuning
[15:27:01] 
[15:27:01] 
[15:27:01] Ignite node started OK (id=68a3189d)
[15:27:01] Topology snapshot [ver=8, locNode=68a3189d, servers=1, clients=1, state=ACTIVE, CPUs=8, offheap=6.2GB, heap=15.0GB]
[15:27:01]   ^-- Baseline [id=0, size=1, online=1, offline=0]
>> Created the cache and add the values.
Exception in thread "main" class org.apache.ignite.IgniteException: Remote job threw user exception (override or implement ComputeTask.result(..) method if you would like to have automatic failover for this exception): Task was not deployed or was redeployed since task execution [taskName=javasimple.HelloWorldIgnite$RemoteTask, taskClsName=javasimple.HelloWorldIgnite$RemoteTask, codeVer=0, clsLdrId=a81235b2f81-68a3189d-f2e3-4b0c-b7d9-1af289f01803, seqNum=1714418819466, depMode=SHARED, dep=null]
	at org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102)
	at org.apache.ignite.internal.processors.task.GridTaskWorker$4.apply(GridTaskWorker.java:1071)
	at org.apache.ignite.internal.processors.task.GridTaskWorker$4.apply(GridTaskWorker.java:1064)
	at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7530)
	at org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1064)
	at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:868)
	at org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1074)
	at org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1323)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1906)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1527)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:242)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1420)
	at org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55)
	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:840)
Caused by: class org.apache.ignite.IgniteDeploymentException: Task was not deployed or was redeployed since task execution [taskName=javasimple.HelloWorldIgnite$RemoteTask, taskClsName=javasimple.HelloWorldIgnite$RemoteTask, codeVer=0, clsLdrId=a81235b2f81-68a3189d-f2e3-4b0c-b7d9-1af289f01803, seqNum=1714418819466, depMode=SHARED, dep=null]
	at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1423)
	at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:2223)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1906)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1527)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:242)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1420)
	at org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)

@ptupitsyn
Copy link
Contributor

RemoteTask class is not deployed on the server node that you start with ignite.sh.

Please have a look at Code Deployment documentation: https://ignite.apache.org/docs/latest/code-deployment/deploying-user-code

Easy fix is to enable Peer Class Loading: https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading

@patrickptibco
Copy link
Author

If true, that should be mentioned in the getting started guide, however, peer class loading is already set:

        // Classes of custom Java logic will be transferred over the wire from this app.
        cfg.setPeerClassLoadingEnabled(true);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants