Skip to content

Unresolved compilation problem: org.apache.hadoop.shaded.com.google.protobuf.GeneratedMessage$Builder cannot be resolved. It is indirectly referenced from required .class files #987

@mjwall

Description

@mjwall

Building an assembly from master and running with a local Hadoop 3.1.2, I ran into issues with the Master and Tserver. The err log for both was the same

Exception in thread "tserver" java.lang.Error: Unresolved compilation problem: 
	The type org.apache.hadoop.shaded.com.google.protobuf.GeneratedMessage$Builder cannot be resolved. It is indirectly referenced from required .class files

	at org.apache.accumulo.server.security.delegation.AuthenticationTokenSecretManager.<init>(AuthenticationTokenSecretManager.java:1)
	at org.apache.accumulo.tserver.TabletServer.<init>(TabletServer.java:426)
	at org.apache.accumulo.tserver.TabletServer.main(TabletServer.java:3260)
	at org.apache.accumulo.tserver.TServerExecutable.execute(TServerExecutable.java:43)
	at org.apache.accumulo.start.Main.lambda$execKeyword$0(Main.java:129)
	at java.lang.Thread.run(Thread.java:748)

So what is using that?

cd server/base
mvn dependency:copy-dependencies
cd target/dependency
jar tf hadoop-client-runtime-3.1.1.jar  | grep GeneratedMesage$Builder\.class
org/apache/hadoop/shaded/com/google/protobuf/GeneratedMessage$Builder.class

So this too looks like a problem with the runtime jar similar to https://bugs.eclipse.org/bugs/show_bug.cgi?id=541772

That jar and class are in the Hadoop install

cd $HADOOP_HOME
jar tf share/hadoop/client/hadoop-client-runtime-3.1.2.jar | grep GeneratedMessage$Builder\.class
org/apache/hadoop/shaded/com/google/protobuf/GeneratedMessage.class

The tserver process is not running, but the master is still running even though the monitor can not connect to it. So I can check that jar is on the classpath.

jcmd | grep master
9597 org.apache.accumulo.start.Main master
jcmd 9597 VM.system_properties | grep ^java.class.path | tr ':' '\n' | grep runtime
HADOOP_HOME/share/hadoop/client/hadoop-client-runtime-3.1.2.jar\
HADOOP_HOME/share/hadoop/client/hadoop-client-runtime-3.1.2.jar\

It is there, but why twice?

I do not have protoc installed but I don't think that is the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions