Opened 9 years ago

Closed 9 years ago

#1104 closed defect (fixed)

Cannot compile rasnet after update

Reported by: Alex Dumitru Owned by: George Merticariu
Priority: major Milestone: 9.2
Component: rasnet Version: development
Keywords: Cc: Alex Toader
Complexity: Medium

Description

I had a running installation. I ran git pull and the autoreconf, configure, make && make install. This is what I got back:

import org.rasdaman.rasnet.service.Error;
                                  ^
  symbol:   class Error
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/util/GrpcUtils.java:54: error: cannot find symbol
                Error.ErrorMessage message = Error.ErrorMessage.parseFrom(status.getDescription().getBytes(Charset.forName("UTF-8")));

Also there was no mention of needing to update grpc in the wiki in order to compile.

Change History (18)

comment:1 by Dimitar Misev, 9 years ago

I have this issue, what exactly needs to be updated?

serverrasnet.cc: In constructor ‘rasmgr::ServerRasNet::ServerRasNet(const rasmgr::ServerConfig&)’:
serverrasnet.cc:104:106: error: ‘InsecureChannelCredentials’ is not a member of ‘grpc’
     this->service.reset(new ::rasnet::service::RasServerService::Stub(grpc::CreateChannel(serverAddress, grpc::InsecureChannelCredentials())));

comment:2 by Alex Dumitru, 9 years ago

I couldn't get it to update, it seems some Makefile is broken and does not properly clean some generated files → hence this ticket. It works if you clone a new version though and follow the installation isntructions.

comment:3 by Dimitar Misev, 9 years ago

I'm compiling on a fresh rasdaman clone and I get the above error.. not sure if I need to update something else.

comment:4 by Alex Dumitru, 9 years ago

Probably skipped this grpc part git checkout release-0_12
See here: http://rasdaman.org/wiki/Install

comment:5 by Dimitar Misev, 9 years ago

Ok last time I installed I guess there wasn't 0.12, in my local clone grpc is at 0.11; there should be some announcement when the dependencies change.

comment:6 by Alex Dumitru, 9 years ago

I agree, I was surprised to see this as well.

comment:7 by Dimitar Misev, 9 years ago

Now I'm getting this:

make[2]: Entering directory '/home/dimitar/projects/rasdaman/community/src/java'
cp src/rasj/RasImplementation.java.rasnet src/rasj/RasImplementation.java
Making all in ../rasnet
make[3]: Entering directory '/home/dimitar/projects/rasdaman/community/src/rasnet'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/dimitar/projects/rasdaman/community/src/rasnet'
make[3]: Entering directory '/home/dimitar/projects/rasdaman/community/src/java'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/dimitar/projects/rasdaman/community/src/java'
mkdir -p bin dist
javac -cp lib/commons-codec-1.3.jar:lib/commons-logging-1.1.1.jar:lib/google-auth-library-credentials-0.3.0.jar:lib/google-auth-library-oauth2-http-0.3.0.jar:lib/google-http-client-1.19.0.jar:lib/google-http-client-jackson2-1.19.0.jar:lib/grpc-all-0.9.0.jar:lib/grpc-auth-0.9.0.jar:lib/grpc-core-0.9.0.jar:lib/grpc-netty-0.9.0.jar:lib/grpc-okhttp-0.9.0.jar:lib/grpc-protobuf-0.9.0.jar:lib/grpc-protobuf-nano-0.9.0.jar:lib/grpc-stub-0.9.0.jar:lib/guava-18.0.jar:lib/hamcrest-core-1.3.jar:lib/hpack-0.10.1.jar:lib/httpclient-4.0.1.jar:lib/httpcore-4.0.1.jar:lib/jackson-core-2.1.3.jar:lib/jsr305-3.0.0.jar:lib/junit-4.11.jar:lib/junit-4.12.jar:lib/mockito-all-1.10.19.jar:lib/mockito-core-1.10.19.jar:lib/netty-buffer-4.1.0.Beta6.jar:lib/netty-codec-4.1.0.Beta6.jar:lib/netty-codec-http2-4.1.0.Beta6.jar:lib/netty-codec-http-4.1.0.Beta6.jar:lib/netty-common-4.1.0.Beta6.jar:lib/netty-handler-4.1.0.Beta6.jar:lib/netty-resolver-4.1.0.Beta6.jar:lib/netty-transport-4.1.0.Beta6.jar:lib/objenesis-2.1.jar:lib/okhttp-2.4.0.jar:lib/okio-1.4.0.jar:lib/protobuf-java-3.0.0-beta-1.jar:lib/protobuf-javanano-3.0.0-alpha-4.jar -d bin src/org/odmg/*.java src/rasj/*.java src/rasj/global/*.java src/rasj/clientcommhttp/*.java src/rasj/odmg/*.java src/rasj/rnp/*.java src/org/rasdaman/rasnet/communication/*.java src/org/rasdaman/rasnet/service/*.java src/org/rasdaman/rasnet/util/*.java
javac: file not found: src/org/rasdaman/rasnet/service/*.java
Usage: javac <options> <source files>
use -help for a list of possible options

in reply to:  7 comment:8 by George Merticariu, 9 years ago

Replying to dmisev:

Now I'm getting this:

make[2]: Entering directory '/home/dimitar/projects/rasdaman/community/src/java'
cp src/rasj/RasImplementation.java.rasnet src/rasj/RasImplementation.java
Making all in ../rasnet
make[3]: Entering directory '/home/dimitar/projects/rasdaman/community/src/rasnet'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/dimitar/projects/rasdaman/community/src/rasnet'
make[3]: Entering directory '/home/dimitar/projects/rasdaman/community/src/java'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/dimitar/projects/rasdaman/community/src/java'
mkdir -p bin dist
javac -cp lib/commons-codec-1.3.jar:lib/commons-logging-1.1.1.jar:lib/google-auth-library-credentials-0.3.0.jar:lib/google-auth-library-oauth2-http-0.3.0.jar:lib/google-http-client-1.19.0.jar:lib/google-http-client-jackson2-1.19.0.jar:lib/grpc-all-0.9.0.jar:lib/grpc-auth-0.9.0.jar:lib/grpc-core-0.9.0.jar:lib/grpc-netty-0.9.0.jar:lib/grpc-okhttp-0.9.0.jar:lib/grpc-protobuf-0.9.0.jar:lib/grpc-protobuf-nano-0.9.0.jar:lib/grpc-stub-0.9.0.jar:lib/guava-18.0.jar:lib/hamcrest-core-1.3.jar:lib/hpack-0.10.1.jar:lib/httpclient-4.0.1.jar:lib/httpcore-4.0.1.jar:lib/jackson-core-2.1.3.jar:lib/jsr305-3.0.0.jar:lib/junit-4.11.jar:lib/junit-4.12.jar:lib/mockito-all-1.10.19.jar:lib/mockito-core-1.10.19.jar:lib/netty-buffer-4.1.0.Beta6.jar:lib/netty-codec-4.1.0.Beta6.jar:lib/netty-codec-http2-4.1.0.Beta6.jar:lib/netty-codec-http-4.1.0.Beta6.jar:lib/netty-common-4.1.0.Beta6.jar:lib/netty-handler-4.1.0.Beta6.jar:lib/netty-resolver-4.1.0.Beta6.jar:lib/netty-transport-4.1.0.Beta6.jar:lib/objenesis-2.1.jar:lib/okhttp-2.4.0.jar:lib/okio-1.4.0.jar:lib/protobuf-java-3.0.0-beta-1.jar:lib/protobuf-javanano-3.0.0-alpha-4.jar -d bin src/org/odmg/*.java src/rasj/*.java src/rasj/global/*.java src/rasj/clientcommhttp/*.java src/rasj/odmg/*.java src/rasj/rnp/*.java src/org/rasdaman/rasnet/communication/*.java src/org/rasdaman/rasnet/service/*.java src/org/rasdaman/rasnet/util/*.java
javac: file not found: src/org/rasdaman/rasnet/service/*.java
Usage: javac <options> <source files>
use -help for a list of possible options

That's on me. I will fix it on Wed when I return. In the meantime, remove the generated grpc .cc and .h files from rasnet and it will work. The clean in rasnet is not cleaning all the files.

comment:9 by Dimitar Misev, 9 years ago

Can you be more specific which generated files should be removed?

comment:10 by George Merticariu, 9 years ago

Adding the below code in common/src/Makefile.am will fix the problem.

clean: clean-am
        rm -f grpc/messages/*.h
        rm -f grpc/messages/*.cc

comment:11 by Dimitar Misev, 9 years ago

great, I'll make a patch.

comment:12 by Dimitar Misev, 9 years ago

Hmm now I have a bunch of errors like this:

src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:26: error: cannot find symbol
import org.rasdaman.rasnet.service.RasMgrClientServiceGrpc;
                                  ^
  symbol:   class RasMgrClientServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:27: error: cannot find symbol
import org.rasdaman.rasnet.service.RasmgrClientService;
                                  ^
  symbol:   class RasmgrClientService
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:41: error: package RasMgrClientServiceGrpc does not exist
    private final RasMgrClientServiceGrpc.RasMgrClientServiceBlockingStub rasmgrService;
                                         ^
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:54: error: package RasMgrClientServiceGrpc does not exist
    public RasmgrKeepAlive(RasMgrClientServiceGrpc.RasMgrClientServiceBlockingStub rasmgrService,
                                                  ^
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:31: error: package org.rasdaman.rasnet.service.ClientRasServerService does not exist
import org.rasdaman.rasnet.service.ClientRasServerService.*;
^
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:32: error: cannot find symbol
import org.rasdaman.rasnet.service.ClientRassrvrServiceGrpc;
                                  ^
  symbol:   class ClientRassrvrServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:34: error: cannot find symbol
import org.rasdaman.rasnet.service.RasMgrClientServiceGrpc;
                                  ^
  symbol:   class RasMgrClientServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:35: error: package org.rasdaman.rasnet.service.RasmgrClientService does not exist
import org.rasdaman.rasnet.service.RasmgrClientService.*;

...

in reply to:  12 comment:13 by George Merticariu, 9 years ago

Replying to dmisev:

Hmm now I have a bunch of errors like this:

src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:26: error: cannot find symbol
import org.rasdaman.rasnet.service.RasMgrClientServiceGrpc;
                                  ^
  symbol:   class RasMgrClientServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:27: error: cannot find symbol
import org.rasdaman.rasnet.service.RasmgrClientService;
                                  ^
  symbol:   class RasmgrClientService
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:41: error: package RasMgrClientServiceGrpc does not exist
    private final RasMgrClientServiceGrpc.RasMgrClientServiceBlockingStub rasmgrService;
                                         ^
src/org/rasdaman/rasnet/communication/RasmgrKeepAlive.java:54: error: package RasMgrClientServiceGrpc does not exist
    public RasmgrKeepAlive(RasMgrClientServiceGrpc.RasMgrClientServiceBlockingStub rasmgrService,
                                                  ^
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:31: error: package org.rasdaman.rasnet.service.ClientRasServerService does not exist
import org.rasdaman.rasnet.service.ClientRasServerService.*;
^
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:32: error: cannot find symbol
import org.rasdaman.rasnet.service.ClientRassrvrServiceGrpc;
                                  ^
  symbol:   class ClientRassrvrServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:34: error: cannot find symbol
import org.rasdaman.rasnet.service.RasMgrClientServiceGrpc;
                                  ^
  symbol:   class RasMgrClientServiceGrpc
  location: package org.rasdaman.rasnet.service
src/org/rasdaman/rasnet/communication/RasRasnetImplementation.java:35: error: package org.rasdaman.rasnet.service.RasmgrClientService does not exist
import org.rasdaman.rasnet.service.RasmgrClientService.*;

...

did you run make clean && make on rasnet and common?

comment:14 by Dimitar Misev, 9 years ago

ok I did make clean on rasnet as well and it compiled now.

I'm puzzled though: why do I need to run any make clean in the first place? I started from a new clone. Something seems broken I'd say.

comment:15 by Dimitar Misev, 9 years ago

Ah probably they got generated before I updated grpc, that would make sense.

comment:16 by George Merticariu, 9 years ago

Yes, but you have a point. We should generate the java messages if the the files are missing. I will update the make file in java to check whether they exist, and if not they will be generated.

comment:17 by Dimitar Misev, 9 years ago

Component: undecidedrasnet
Milestone: 9.2

comment:18 by George Merticariu, 9 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.