Hi! I'm trying to set up Pinot for the first time ...
# troubleshooting
a
Hi! I'm trying to set up Pinot for the first time (as a cluster) and am starting to set up S3 following the steps in https://docs.pinot.apache.org/basics/data-import/pinot-file-system/amazon-s3. It works fine for the controller, but for the server I see this error on startup:
Copy code
2021/02/10 12:22:25.506 ERROR [PluginManager] [main] Failed to load plugin [pinot-s3] from dir [/<redacted>/apache-pinot-incubating-0.6.0-bin/plugins/pinot-file-system/pinot-s3]                             
java.lang.IllegalArgumentException: object is not an instance of declaring class
x
is there more stacktrace from server side ?
a
Sure, I'll paste more
x
Is it during server startup or when you upload data to the table
a
During server startup
Copy code
2021/02/10 12:22:25.506 ERROR [PluginManager] [main] Failed to load plugin [pinot-s3] from dir [/<redacted>/apache-pinot-incubating-0.6.0-bin/plugins/pinot-file-system/pinot-s3]                             java.lang.IllegalArgumentException: object is not an instance of declaring class                                
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]                                  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]        
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]        at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]                                              
        at org.apache.pinot.spi.plugin.PluginClassLoader.<init>(PluginClassLoader.java:50) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                          
        at org.apache.pinot.spi.plugin.PluginManager.createClassLoader(PluginManager.java:171) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                      
        at org.apache.pinot.spi.plugin.PluginManager.load(PluginManager.java:162) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                                   
        at org.apache.pinot.spi.plugin.PluginManager.init(PluginManager.java:137) [pinot-all-0.6.0-jar-with-depe
ndencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                                            at org.apache.pinot.spi.plugin.PluginManager.init(PluginManager.java:103) [pinot-all-0.6.0-jar-with-depe
ndencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                                            at org.apache.pinot.spi.plugin.PluginManager.<init>(PluginManager.java:84) [pinot-all-0.6.0-jar-with-dep
endencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                                           at org.apache.pinot.spi.plugin.PluginManager.<clinit>(PluginManager.java:46) [pinot-all-0.6.0-jar-with-d
ependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                                 
        at org.apache.pinot.tools.admin.PinotAdministrator.main(PinotAdministrator.java:164) [pinot-all-0.6.0-ja
r-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]
x
ic, are you using the docker image or the baremetal
with bin
a
Baremetal
x
can you try with java opts to only include the plugins you are using:
-Dplugins.include=pinot-s3,pinot-parquet
something like this
ic
which java version are you using ?
a
Yeah, I'm already doing that with java opts
java 11
x
ok
a
openjdk version "11.0.9.1" 2020-11-04
x
hmm
I think for java11, we are trying to include all the plugins into classpath as some classloader apis are deprecated from java 8
if that doesn’t work just delete the un-used plugins from pinot-bin directory
like pinot-gcs
a
But I think this error message is specifically about pinot-s3
Copy code
Failed to load plugin [pinot-s3] from dir [/scratch/aaron/p
rojects/pinot/apache-pinot-incubating-0.6.0-bin/plugins/pinot-file-system/pinot-s3]
Ok, I deleted every plugin except for pinot-s3, and I still see the same error message.
x
ok
hmm
it might be issue of jdk
i will check this jdk 11.0.9.1?
a
Is pinot not compatible with jdk11?
Thanks
x
it should
a
If it helps:
Copy code
$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
t
We also ran into this error with the Java 11 docker images. It might be relevant that the component starts with this warning:
Copy code
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.pinot.spi.plugin.PluginClassLoader (file:/opt/pinot/lib/pinot-all-0.7.0-SNAPSHOT-jar-with-dependencies.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.apache.pinot.spi.plugin.PluginClassLoader
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
We decided to fall back to a jdk8-based docker image for now.
x
sure, I will take a look, one thing you can try is to build pinot from src code with your current java version
right for java 11+ need to add
--add-exports java.base/jdk.internal.ref=ALL-UNNAMED
into JAVA_OPTS
it’s different apis for class loader
those warnings are related to this behavior @Tamás Nádudvari just fyi
👍 1
a
Is Java 11 actually supported or should I downgrade to Java 8?
x
it is supported. have you tried adding
-add-exports java.base/jdk.internal.ref=ALL-UNNAMED
a
I tried adding that
I still see the same error, and I also see the "reflective access" warnings still
x
ic
let me check then
e
Hey, just seeing this - there is a pr for java11, we use it in prod and it has been working great (g1gc behavior much better, more stable, etc.):
It's a simple change, you can even copypaste it:) lmk if you have any issues with that
x
sure I will take a look
a
I tried out Java 8 for the time being, and now I run into this error when starting up the server:
Copy code
2021/02/11 11:37:06.847 ERROR [PinotFSFactory] [Start a Pinot [SERVER]] Could not instantiate file system for class org.apache.pinot.plugin.filesystem.S3PinotFS with scheme s3                                                
java.lang.IllegalArgumentException: null
        at shaded.com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                       
        at org.apache.pinot.plugin.filesystem.S3PinotFS.init(S3PinotFS.java:83) ~[pinot-s3-0.6.0-shaded.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]
        at org.apache.pinot.spi.filesystem.PinotFSFactory.register(PinotFSFactory.java:54) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                         
        at org.apache.pinot.spi.filesystem.PinotFSFactory.init(PinotFSFactory.java:74) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                             
        at org.apache.pinot.server.starter.helix.SegmentFetcherAndLoader.<init>(SegmentFetcherAndLoader.java:71) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                   
        at org.apache.pinot.server.starter.helix.HelixServerStarter.start(HelixServerStarter.java:316) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                             
        at org.apache.pinot.tools.service.PinotServiceManager.startServer(PinotServiceManager.java:150) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                            
        at org.apache.pinot.tools.service.PinotServiceManager.startRole(PinotServiceManager.java:95) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                               
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand$1.lambda$run$0(StartServiceManagerCommand.java:260) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]     
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand.startPinotService(StartServiceManagerCommand.java:286) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]   
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand.access$000(StartServiceManagerCommand.java:57) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]           
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand$1.run(StartServiceManagerCommand.java:260) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]               
2021/02/11 11:37:06.851 ERROR [StartServiceManagerCommand] [Start a Pinot [SERVER]] Failed to start a Pinot [SERVER] at 0.883 since launch
java.lang.RuntimeException: java.lang.IllegalArgumentException                                                 
        at org.apache.pinot.spi.filesystem.PinotFSFactory.register(PinotFSFactory.java:58) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                         
        at org.apache.pinot.spi.filesystem.PinotFSFactory.init(PinotFSFactory.java:74) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                             
        at org.apache.pinot.server.starter.helix.SegmentFetcherAndLoader.<init>(SegmentFetcherAndLoader.java:71) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                   
        at org.apache.pinot.server.starter.helix.HelixServerStarter.start(HelixServerStarter.java:316) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                             
        at org.apache.pinot.tools.service.PinotServiceManager.startServer(PinotServiceManager.java:150) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                            
        at org.apache.pinot.tools.service.PinotServiceManager.startRole(PinotServiceManager.java:95) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                               
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand$1.lambda$run$0(StartServiceManagerCommand.java:260) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]     
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand.startPinotService(StartServiceManagerCommand.java:286) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]   
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand.access$000(StartServiceManagerCommand.java:57) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]           
        at org.apache.pinot.tools.admin.command.StartServiceManagerCommand$1.run(StartServiceManagerCommand.java:260) [pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]               
Caused by: java.lang.IllegalArgumentException
        at shaded.com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                       
        at org.apache.pinot.plugin.filesystem.S3PinotFS.init(S3PinotFS.java:83) ~[pinot-s3-0.6.0-shaded.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]
        at org.apache.pinot.spi.filesystem.PinotFSFactory.register(PinotFSFactory.java:54) ~[pinot-all-0.6.0-jar-with-dependencies.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21]                                         
        ... 9 more
Figured this one out -- apparently the
region
setting is required
👍 1
x
do you find it from stacktrace?
a
No, there's no information in the stack trace to help debug this
I just guessed until it started working
x
I see. I will double check and make the error msg more clear
thanks for reporting this