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

Bootstrap failure: /usr/bin/ld is wrongly invoked from /opt/rh/.../gcc under Bazel #361

Closed
nodakai opened this issue Aug 6, 2015 · 7 comments

Comments

@nodakai
Copy link

nodakai commented Aug 6, 2015

Chances are that my environment is too non-standard... but where can I find a config not to use it? git grep -- -plugin didn't find anything. Is it hard-coded in a pre-built JAR or something? Moreover, my toolkit should accept -plugin. Anything wrong with my CROSSTOOL ?

$ bash compile.sh
INFO: You can skip this first step by providing a path to the bazel binary as second argument:
INFO:    compile.sh build /path/to/bazel
�  Building Bazel from scratch...........
�  Building Bazel with Bazel.
.WARNING: Output base '/home/nodakai/.cache/bazel/_bazel_nodakai/b9f9d0bfe2c30f0de6e9fab9bee6c1a2' is on NFS. This may lead to surprising failures and undetermined behavior.
Extracting Bazel installation...
Sending SIGTERM to previous Bazel server (pid=9423)... done.
......
INFO: Found 1 target...
INFO: From Linking src/main/tools/namespace-sandbox:
/usr/bin/ld: unrecognized option '-plugin'
/usr/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status
ERROR: /home/nodakai/src/bazel-HEAD/src/main/tools/BUILD:14:1: Linking of rule '//src/main/tools:namespace-sandbox' failed: gcc failed: error executing command /opt/rh/devtoolset-3/root/usr/bin/gcc -o bazel-out/local_linux-fastbuild/bin/src/main/tools/namespace-sandbox ... (remaining 10 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
Target //src:bazel failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 3.963s, Critical Path: 1.72s

Building output/bazel
$ echo 'int main(void){return 5;}' | strace -f -e execve /opt/rh/devtoolset-3/root/usr/bin/gcc -xc - && ./a.out; echo $?                                   (git)-master
execve("/opt/rh/devtoolset-3/root/usr/bin/gcc", ["/opt/rh/devtoolset-3/root/usr/bi"..., "-xc", "-"], [/* 59 vars */]) = 0
Process 29145 attached
[pid 29145] execve("/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/cc1", ["/opt/rh/devtoolset-3/root/usr/li"..., "-quiet", "-", "-quiet", "-dumpbase", "-", "-mtune=generic", "-march=x86-64", "-auxbase", "-", "-o", "/tmp/ccQuUjFT.s"], [/* 62 vars */]) = 0
[pid 29145] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29145, si_status=0, si_utime=0, si_stime=0} ---
Process 29146 attached
[pid 29146] execve("/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/as", ["/opt/rh/devtoolset-3/root/usr/li"..., "--64", "-o", "/tmp/ccWsjGDv.o", "/tmp/ccQuUjFT.s"], [/* 62 vars */]) = 0
[pid 29146] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29146, si_status=0, si_utime=0, si_stime=0} ---
Process 29147 attached
[pid 29147] execve("/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/collect2", ["/opt/rh/devtoolset-3/root/usr/li"..., "-plugin", "/opt/rh/devtoolset-3/root/usr/li"..., "-plugin-opt=/opt/rh/devtoolset-3"..., "-plugin-opt=-fresolution=/tmp/cc"..., "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "-plugin-opt=-pass-through=-lc", "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "--build-id", "--no-add-needed", "--eh-frame-hdr", "--hash-style=gnu", "-m", "elf_x86_64", ...], [/* 64 vars */]) = 0
Process 29148 attached
[pid 29148] execve("/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/ld", ["/opt/rh/devtoolset-3/root/usr/li"..., "-plugin", "/opt/rh/devtoolset-3/root/usr/li"..., "-plugin-opt=/opt/rh/devtoolset-3"..., "-plugin-opt=-fresolution=/tmp/cc"..., "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "-plugin-opt=-pass-through=-lc", "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "--build-id", "--no-add-needed", "--eh-frame-hdr", "--hash-style=gnu", "-m", "elf_x86_64", ...], [/* 64 vars */]) = 0
[pid 29148] +++ exited with 0 +++
[pid 29147] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29148, si_status=0, si_utime=0, si_stime=0} ---
[pid 29147] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29147, si_status=0, si_utime=0, si_stime=0} ---
+++ exited with 0 +++
5
$ git di tools/
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index 25368e9..89e6bac 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -71,12 +71,12 @@ toolchain {
   target_system_name: "local"
   toolchain_identifier: "local_linux"

-  tool_path { name: "ar" path: "/usr/bin/ar" }
-  tool_path { name: "compat-ld" path: "/usr/bin/ld" }
-  tool_path { name: "cpp" path: "/usr/bin/cpp" }
+  tool_path { name: "ar" path: "/opt/rh/devtoolset-3/root/usr/bin/ar" }
+  tool_path { name: "compat-ld" path: "/opt/rh/devtoolset-3/root/usr/bin/ld" }
+  tool_path { name: "cpp" path: "/opt/rh/devtoolset-3/root/usr/bin/cpp" }
   tool_path { name: "dwp" path: "/usr/bin/dwp" }
-  tool_path { name: "gcc" path: "/usr/bin/gcc" }
-  cxx_flag: "-std=c++0x"
+  tool_path { name: "gcc" path: "/opt/rh/devtoolset-3/root/usr/bin/gcc" }
+  cxx_flag: "-std=c++14"
   linker_flag: "-lstdc++"
   linker_flag: "-B/usr/bin/"

@@ -84,21 +84,21 @@ toolchain {
   # used by gcc. That works because bazel currently doesn't track files at
   # absolute locations and has no remote execution, yet. However, this will need
   # to be fixed, maybe with auto-detection?
-  cxx_builtin_include_directory: "/usr/lib/gcc/"
+  cxx_builtin_include_directory: "/opt/rh/devtoolset-3/root/usr/include"
   cxx_builtin_include_directory: "/usr/local/include"
   cxx_builtin_include_directory: "/usr/include"
   tool_path { name: "gcov" path: "/usr/bin/gcov" }

   # C(++) compiles invoke the compiler (as that is the one knowing where
   # to find libraries), but we provide LD so other rules can invoke the linker.
-  tool_path { name: "ld" path: "/usr/bin/ld" }
+  tool_path { name: "ld" path: "/opt/rh/devtoolset-3/root/usr/bin/ld" }

-  tool_path { name: "nm" path: "/usr/bin/nm" }
-  tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
+  tool_path { name: "nm" path: "/opt/rh/devtoolset-3/root/usr/bin/nm" }
+  tool_path { name: "objcopy" path: "/opt/rh/devtoolset-3/root/usr/bin/objcopy" }
   objcopy_embed_flag: "-I"
   objcopy_embed_flag: "binary"
-  tool_path { name: "objdump" path: "/usr/bin/objdump" }
-  tool_path { name: "strip" path: "/usr/bin/strip" }
+  tool_path { name: "objdump" path: "/opt/rh/devtoolset-3/root/usr/bin/objdump" }
+  tool_path { name: "strip" path: "/opt/rh/devtoolset-3/root/usr/bin/strip" }

   # Anticipated future default.
   unfiltered_cxx_flag: "-no-canonical-prefixes"
@nodakai
Copy link
Author

nodakai commented Aug 6, 2015

48029 execve("/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/collect2", ...
...
48032 execve("/usr/bin/ld", ["/usr/bin/ld", "-plugin", "/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/liblto_plugin.so", ...
48029 <... vfork resumed> )             = 48032

/opt/rh/devtoolset-3/.../collect2 execves /usr/bin/ld only under Bazel. What is happening?

@damienmg
Copy link
Contributor

damienmg commented Aug 7, 2015

The line that does add -plugin to collect2 is the as call. It seems like an installation problem. Can you tell a bit more about your environment?

@damienmg damienmg added under investigation P2 We'll consider working on this in future. (Assignee optional) and removed P2 We'll consider working on this in future. (Assignee optional) labels Aug 7, 2015
@nodakai
Copy link
Author

nodakai commented Aug 18, 2015

Indeed I have both of /usr/bin/gcc AND /opt/rh/devtoolset-3/root/usr/bin/gcc but why does that matter? Does Bazel look up a command in $PATH by its own rule?

I have this in my ~/.bash_profile:

PATH=/opt/rh/devtoolset-3/root/usr/bin:$PATH

So I always invoke /opt/rh/.../ld except under Bazel:

$ bash -l -c 'which g++'
/opt/rh/devtoolset-3/root/usr/bin/g++
$ bash -l -c 'which ld'
/opt/rh/devtoolset-3/root/usr/bin/ld
$ /usr/bin/ld --version
GNU ld version 2.20.51.0.2-5.42.el6 20100205
Copyright 2009 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
$ bash -l -c 'g++ -Wl,--version'
collect2 version 4.9.1 20140922 (Red Hat 4.9.1-10)
/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/ld -plugin /opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/liblto_plugin.so -plugin-opt=/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPIPYCs.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1/crtbegin.o -L/opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1 -L/opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1/../../.. --version -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1/crtend.o /usr/lib/../lib64/crtn.o
GNU ld version 2.24
Copyright 2013 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

@nodakai nodakai changed the title Bootstrap failure: unrecognized option '-plugin' Bootstrap failure: /usr/bin/ld is wrongly invoked from /opt/rh/.../gcc under Bazel Aug 18, 2015
@damienmg
Copy link
Contributor

Good point, what do you have in your environment variable? I think gcc is finding ld using environment variable and the environment is rewritten for action running in Bazel

@nodakai
Copy link
Author

nodakai commented Aug 19, 2015

When I set my logging wrapper of GCC to tool_path,

  tool_path { name: "gcc" path: "/home/nodakai/local/bin/mygcc.sh" }

mygcc.sh:

#! /bin/sh

{
    printenv
    echo
    echo "$0" "$@"
} >> /tmp/mygcc-$$.log
/opt/rh/devtoolset-3/root/usr/bin/gcc "$@"

I got something like this:

PWD=/home/nodakai/.cache/bazel/_bazel_nodakai/b9f9d0bfe2c30f0de6e9fab9bee6c1a2/bazel-HEAD
SHLVL=1
_=/usr/bin/printenv

/home/nodakai/local/bin/mygcc.sh -o bazel-out/local_linux-fastbuild/bin/src/main/tools/build-runfiles bazel-out/local_linux-fastbuild/bin/src/main/tools/_objs/build-runfiles/src/main/tools/build-runfiles.pic.o -lstdc++ -B/usr/bin/ -pie -Wl,-z,relro,-z,now -no-canonical-prefixes -pass-exit-codes -Wl,--build-id=md5 -Wl,--hash-style=gnu -Wl,-S
PATH=/opt/rh/devtoolset-3/root/usr/bin:/home/nodakai/local/zsh-rh6/bin:/home/nodakai/local/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/nodakai/local/bin
PWD=/home/nodakai/.cache/bazel/_bazel_nodakai/b9f9d0bfe2c30f0de6e9fab9bee6c1a2/bazel-HEAD
SHLVL=1
INTERCEPT_LOCALLY_EXECUTABLE=1
_=/usr/bin/printenv

/home/nodakai/local/bin/mygcc.sh -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -fstack-protector -fPIE -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -std=c++14 -Wpedantic -DBLAZE_OPENSOURCE -iquote . -iquote bazel-out/local_linux-fastbuild/genfiles -isystem tools/cpp/gcc3 -Wno-sign-compare -DBLAZE_JAVA_CPU="k8" -no-canonical-prefixes -Wno-builtin-macro-redefined -D__DATE__="redacted" -D__TIMESTAMP__="redacted" -D__TIME__="redacted" -frandom-seed=bazel-out/local_linux-fastbuild/bin/src/main/cpp/_objs/client/src/main/cpp/blaze_util_linux.pic.o -MD -MF bazel-out/local_linux-fastbuild/bin/src/main/cpp/_objs/client/src/main/cpp/blaze_util_linux.pic.d -fPIC -c src/main/cpp/blaze_util_linux.cc -o bazel-out/local_linux-fastbuild/bin/src/main/cpp/_objs/client/src/main/cpp/blaze_util_linux.pic.o

That is, all the invocations of mygcc.sh as a linker had almost empty environment variable whereas those as a C++ compiler had a few entries (but much fewer than what I see on my console.) Does this have something to do with shell/Command.java?

@hanwen
Copy link
Contributor

hanwen commented Aug 20, 2015

all commands get a sanitized environment so invocations are portable across machines. If you need special tweaks, you could modify mygcc.sh to add the relevant varialbes.

@nodakai
Copy link
Author

nodakai commented Aug 21, 2015

For the linking phase,

linker_flag: "-B/opt/rh/devtoolset-3/root/usr/bin"

was essential rather than

tool_path { name: "ld" path: "/opt/rh/devtoolset-3/root/usr/bin/ld" }

@nodakai nodakai closed this as completed Aug 21, 2015
bazel-io pushed a commit that referenced this issue Aug 12, 2021
  - 3c7ec07fe0418446ffdb1a04c671a3810d74ae30 [cas] Add cas package (#300) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 28fa42989a6c2d05cddb6b42494f34ef742c3de9 [cas] Implement file reading (#302) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 69c6642c3a006636256c1d2e591899f07d4c74bf Simplify caching packages (#303) by nodirg <56001730+nodirg@users.noreply.github.com>
  - f7087af662fe5481f2e75abd652af46d9a376534 [cas] Implement presence check (#304) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 847bca232f884b1e7ee059c64317a5140f11477e Simplify caching packages further (#306) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 989513ef4a567a812f21b27f2a5d83f1a2145600 Rename singleflightcache.Cache (#310) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 7eceb37537dec7c50e52d4f1af1a5d671c267144 [cas] Fix the build (#308) by nodirg <56001730+nodirg@users.noreply.github.com>
  - fd877b05ba2ed611f6d34e711da05917b729eff9 [cas] Add retries (#311) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 5bc303584ef03ded33f03fa2976015e38da9c050 [cas] Add support for Symlinks. (#309) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 4cfed65947cba54af1b2259d9e3facf7dd3007b9 [cas] Implement batch upload (#307) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 144126c43e73aeeabdbeb8bc4ef0290fa7a91ba7 [cas] Move file IO semaphore to Client (#313) by nodirg <56001730+nodirg@users.noreply.github.com>
  - e1da041171a715b7bab3178acfe1cd774b9f5019 [cas] Reuse file read buffers (#317) by nodirg <56001730+nodirg@users.noreply.github.com>
  - e9184e44947661852a8887f3183e00c346208aaa [cas] Add UploadOptions (#314) by nodirg <56001730+nodirg@users.noreply.github.com>
  - e2bd6c8e2d6bc183ff059c688a604ba1ac18b840 [cas] Implement ServerCapabilities check (#315) by nodirg <56001730+nodirg@users.noreply.github.com>
  - b00d91e726265f23ad0a88730545831b8d5519ef [cas] Add RPCConfig (#318) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 1c678dec65b62e49840419ab777c7b6ce65cfd76 [cas] Improve error messages (#321) by nodirg <56001730+nodirg@users.noreply.github.com>
  - ad8d2cfffe1f3728469a8dd5a7531b9157280ecd [cas] Limit FindMissingBlobs concurrency (#319) by nodirg <56001730+nodirg@users.noreply.github.com>
  - b1b54ee4d55b5d5bd71ca2df4353058515581697 [cas] Increase FindMissingBlobs concurrency to 256 (#323) by nodirg <56001730+nodirg@users.noreply.github.com>
  - b4a0e12d87c946ced360d723d743be1f57a47995 [cas] Move file IO buffering deeper (#322) by nodirg <56001730+nodirg@users.noreply.github.com>
  - abb14633e09633368f06d8e4fd28bd1553509061 [cas] Add filtering/callback (#316) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 7447b28dd69e22848ee850936a1cdd28e2d0e20b Add Mtime to the file metadata cache. (#326) by ramymedhat <abdelaal@google.com>
  - 7182b476eb6260fae9ba2bd8995b97a7096e340c [cas] Implement streaming (#320) by nodirg <56001730+nodirg@users.noreply.github.com>
  - b0605647bbe2ff7d046a286c3023e7714376fb83 include file path in upload error (#327) by Takuto Ikuta <tikuta@google.com>
  - 3b602dd48f7f63a76cb1087a10355b3c668d583f [cas] Implement per-request timeouts in a stream (#325) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 395c674af7a9cd696dfd1f2b4a950f6899ccb3a0 remove unused variables (#332) by Takuto Ikuta <tikuta@google.com>
  - 45f49a9529f755fb586fe2f8bf3e78b1eae39e81 [cas] Unembed cas.Client.ClientConfig. (#333) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 2a9b29928abe867026e37833fa480ed16238df7a [cas] Rename UploadOptions.Callback to Prelude (#334) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 80ea864b211ee3d87e14f4be0ca8d17e5917062c [cas] Read files once (#335) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 0e577525a2dce2d0e7bddd80927c8901d28bf0fb [cas] PathExclude: use forward-slash-separated paths (#341) by nodirg <56001730+nodirg@users.noreply.github.com>
  - e155d015bcc4c9eb9978572422e3404f26220700 Add useful error message for uploading files. (#339) by bansalvinayak <vinayakbansal@google.com>
  - 3dfb518d390280a2ffef5a85ab1852a2a526a983 [cas] Rename UploadInput to PathSpec (#342) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 752e4efb2631b45f5c27120f83d517cc2b2846d2 google/uuid -> pborman/uuid (#344) by Rubens Farias <rubensf@google.com>
  - d94f8a8ba888d384686a7cd74d8a9d0795ba4b6d Small tweaks to appease internal import checks. (#346) by Rubens Farias <rubensf@google.com>
  - f9d52cdef1c3aa8612d9c3ed7a0b65f96e55d870 Catch another pool check (#347) by Rubens Farias <rubensf@google.com>
  - ead1458eda2b7c756138429121a3e22bd5c9aa5a Preserving symlink or not can be configured from Command.... by Yoshisato Yanagisawa <yoshisato.yanagisawa@gmail.com>
  - f831c118b9c9e1dd3e857fbe43da7c992c91b20f make (*Chunker).Reset returns error (#348) by Takuto Ikuta <tikuta@google.com>
  - 1a7d2a4198fa0eb8515593b5259f495cdacf75ab [cas] Require PathSpec.Path to be absolute (#345) by nodirg <56001730+nodirg@users.noreply.github.com>
  - dd2d3976ed7c6482f361de7d24e24d5a8683c56c Upgrade zstdpool-syncpool for DecoderWrapper.Close bugfix... by Mostyn Bramley-Moore <mostyn@antipode.se>
  - 8544bdc0f3112900675a72decdb7a978cece0be7 [cas] Clean PathSpec.Path (#352) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 882e3342509eb038dc04bf44581e5085c0320d16 [cas] Add UploadResult.Digest() (#340) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 5d4d813411299a285f113cb541f2c5750746cdfa chunker: remove unused field from Chunker (#355) by Takuto Ikuta <tikuta@google.com>
  - a5af2d4316599a3fea87a459290e5f88a022a43c Add return value names in singleflightcache (#356) by nodirg <56001730+nodirg@users.noreply.github.com>
  - e7ea26b93b496d4d30e98390682faf6f69f84cb7 [cas] Fix joinFilePathsFast (#361) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 5a8daf747858747b2bf6bdd59e7b07dedc17a244 [cas] Refactor code (#359) by nodirg <56001730+nodirg@users.noreply.github.com>
  - dd6c290b2ce791f3a3e56583a9632f7b538e8a05 [cas] Simplify UploadResult.Digest() signature (#362) by nodirg <56001730+nodirg@users.noreply.github.com>
  - 05222e7e8939959878a5798e51cf52e911feafaf Fix lint (#357) by nodirg <56001730+nodirg@users.noreply.github.com>
  - b2689fabc306d2cd20356f30b7f99eec445d9212 [cas] Refactor Digest() (#363) by nodirg <56001730+nodirg@users.noreply.github.com>
  - c672e5baca9280d181c7e2e87b3d9afd01650893 [cas] Add PathSpec.Allowlist (#360) by nodirg <56001730+nodirg@users.noreply.github.com>
  - f9e6595d5634ac4d4221ba6dca9f5c2e64114b3f add size check (#365) by Takuto Ikuta <tikuta@google.com>
  - 3d0cf1be08dd52d77204ad1be7e70fdd1e48c206 Revert "Add useful error message for uploading files. (#3... by Rubens Farias <rubensf@google.com>
  - 3ddc89f3e2b39308101060b3eeaa10a919cae13e "Wrap" gRPC error codes. (#367) by Rubens Farias <rubensf@google.com>
  - d965bf95d0af9d88d90e9723aee6b332dc3ef93e cas: fix deadlock (#368) by Takuto Ikuta <tikuta@google.com>
  - 3c4ce9170b6c5a5d64bcc4feecc5bcdf5dd1f101 allow to use streamBufSize larger than 32KiB (#369) by Takuto Ikuta <tikuta@google.com>
  - 21d6adc44e550f7aa5c4e9b3fedab838920a9632 use semaphore for large file upload (#370) by Takuto Ikuta <tikuta@google.com>
  - 1cec173a5bf76c02f435050d6fc9a02e1ccea637 update remote-apis (#371) by Takuto Ikuta <tikuta@google.com>
  - e96eb06339fb616167ee02535ab54d9c3a382232 add more log around upload (#372) by Takuto Ikuta <tikuta@google.com>
  - 3f34e744d83161ddcb602121b45b0b33185a36c5 Make glog import consistent. (#373) by Rubens Farias <rubensf@google.com>
  - 3db822c86088434a4d2d53ec2d3b889b9f8cf331 Remove typos (#374) by Rubens Farias <rubensf@google.com>

PiperOrigin-RevId: 390319167
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants