-
Notifications
You must be signed in to change notification settings - Fork 22
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
After rpc2 update to 2.14, coda_server 6.9.5 breaks: error: unterminated conditional directive #46
Comments
The rpc stub generator (rp2gen) must have failed while it was generating that file. You could try a If that doesn't fix it, try to run |
|
Odd, I remember there was a bug related to that message. I found it but this was part of a commit b9e5141 made in 2016, but that was merged into RPC2-2.12. Could there be an older version of rp2gen on your system that is being picked up instead of the one from RPC2-2.14? |
It is installed by the latest rpc2.
|
Got it, you are building 6.9.5, which still had the 'OLDCML' definitions. There was a reason we switched away from them and that was because the client code was generating effectively buggy code. The CountedBS input buffer doesn't specify the available buffer space on a client, so it can cause buffer overflows on the reply side of a remote procedure call. Now in the CML case, there is no reply message because we're just leveraging the existing packing/unpacking code to send things to the server in a well defined and network agnostic format. But since we wanted to add stricter checks at the RPC2 layer we created new CML operations that avoid the problematic CountedBS input buffers. Coda clients stopped using the old packing functions in coda-5.3.20, servers supported both formats to handle legacy clients. In 2016 we redid the pack/unpack functionality in RPC2 (rpc2-2.12) and added the stricter checks and removed the OLDCML operations from the server (coda-6.9.9). And because you are trying to build and older Coda release with the stricter version of RPC2 it fails to generate the stub code. Unfortunately it fails halfway through generating the output, so even if it fails the make the left over files are picked up by the next make execution and get the unterminated conditional because the generated file was truncated. |
I actually know nothing about coda. I only tried to update the FreeBSD port for rpc2, and it broke coda. What is the URL of the latest tarball then? |
http://coda.cs.cmu.edu/coda/source/coda-6.12.0.tar.gz There is a .xz compressed one as well. That source tree actually includes the lwp, rpc2, and rvm sources. It made sense because no other project is actually using those libraries independently and it makes builds more reliable because the Coda source will always build against the included versions of the libraries. It may be a bit of work to get it up and running. I haven't run Coda on FreeBSD in quite a while because it isn't a system I use on a day-to-day basis and I don't know if there have been any significant changes to the kernel module and such. |
Build of 6.12.0 fails:
|
Odd, the RPC2 library in that tree should have provided a stub function when the (currently experimental) codatunnel changes for RPC2 are not built. The same (stub) function is also called from the Coda client code in 'coda-src/venus' which at that point should have already been built. |
Found this problem after the FreeBSD port was updated to 2.14.
The text was updated successfully, but these errors were encountered: