Hi,

Are you using this option 

bazel --max_idle_secs=60

when building with bazel ?

Bazel builds start an underlying ’server’ process, that by default hangs around 
for 3600 secs (yes, 1hour) before disappearing. Without the above your build 
will hang around waiting for this to happen…

Chris

> On 6 Jul 2020, at 2:57 am, Steven Smith <steve.t.sm...@gmail.com> wrote:
> 
> I’m preparing a PR for the Google Magenta project 
> <https://magenta.tensorflow.org <https://magenta.tensorflow.org/>>, and am 
> running into this issue for the “dm-tree” dependent package with the bazel 
> build.
> 
> The command `port -dv test py37-dm-tree` hangs during the bazel build.
> I can’t even Ctl-C out of the process—it requires a full ps command then a 
> kill -9 to shut down everything.
> However, running the build by hand works:
> sudo -u macports bash -c 
> '/opt/local/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 
> setup.py --no-user-cfg build'
> 
> Any pointers or help would be appreciated. I’ve never used bazel, so I copied 
> a bunch of relevant stuff from the py-tensorflow Portfile and attempted a few 
> obvious hacks, but nothing changes the underlying problem of a hung port 
> command.
> 
> Relevant files:
> 
> https://github.com/deepmind/tree/blob/master/setup.py 
> <https://github.com/deepmind/tree/blob/master/setup.py>
> https://github.com/deepmind/tree/blob/master/bazel/BUILD 
> <https://github.com/deepmind/tree/blob/master/bazel/BUILD>
> 
> Bazel process (hung when called from MacPorts):
> 
>> bazel(tree-0.1.6.20200524) -XX:+HeapDumpOnOutOfMemoryError 
>> -XX:HeapDumpPath=/private/var/tmp/_bazel_root/54b8ea352146bad8adc65c2e363d519a
>>  -Xverify:none 
>> -Djava.util.logging.config.file=/private/var/tmp/_bazel_root/54b8ea352146bad8adc65c2e363d519a/javalog.properties
>>  
>> -Dcom.google.devtools.build.lib.util.LogHandlerQuerier.class=com.google.devtools.build.lib.util.SimpleLogHandler$HandlerQuerier
>>  -XX:-MaxFDLimit 
>> -Djava.library.path=/var/tmp/_bazel_root/install/e3bdf1a360e6d6cc38da72ec898bd905/embedded_tools/tools/objc:/var/tmp/_bazel_root/install/e3bdf1a360e6d6cc38da72ec898bd905/
>>  -Dfile.encoding=ISO-8859-1 -jar 
>> /var/tmp/_bazel_root/install/e3bdf1a360e6d6cc38da72ec898bd905/A-server.jar 
>> --max_idle_secs=10800 --noshutdown_on_low_sys_mem --connect_timeout_secs=30 
>> --output_user_root=/var/tmp/_bazel_root 
>> --install_base=/var/tmp/_bazel_root/install/e3bdf1a360e6d6cc38da72ec898bd905 
>> --install_md5=e3bdf1a360e6d6cc38da72ec898bd905 
>> --output_base=/private/var/tmp/_bazel_root/54b8ea352146bad8adc65c2e363d519a 
>> --workspace_directory=/opt/local/var/macports/build/_opt_local_ports_python_py-dm-tree/py37-dm-tree/work/tree-0.1.6.20200524
>>  
>> --default_system_javabase=/Library/Java/JavaVirtualMachines/openjdk13/Contents/Home
>>  
>> --failure_detail_out=/private/var/tmp/_bazel_root/54b8ea352146bad8adc65c2e363d519a/failure_detail.rawproto
>>  --deep_execroot --expand_configs_in_place --idle_server_tasks 
>> --write_command_log --nowatchfs --nofatal_event_bus_exceptions 
>> --nowindows_enable_symlinks --client_debug=false --product_name=Bazel 
>> --noincompatible_enable_execution_transition --option_sources=
> 
> 
> Draft Portfile:
> 
>> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; 
>> c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
>> 
>> PortSystem          1.0
>> PortGroup           compilers 1.0
>> PortGroup           compiler_blacklist_versions 1.0
>> PortGroup           github 1.0
>> PortGroup           java 1.0
>> PortGroup           python 1.0
>> PortGroup           xcodeversion 1.0
>> PortGroup           xcode_workaround 1.0
>> 
>> github.setup        deepmind tree 2b81872
>> # no official release; version from __init__.py plus github commit date
>> version             0.1.6.20200524
>> name                py-dm-${github.project}
>> revision 0
>> 
>> platforms           darwin
>> license             Apache-2
>> maintainers         nomaintainer
>> 
>> description         Deepmind tree is a library for working with nested\
>>                     data structures.
>> long_description    ${description} In a way, tree generalizes the builtin\
>>                     map function which only supports flat sequences, and\
>>                     allows to apply a function to each "leaf" preserving\
>>                     the overall structure.
>> 
>> homepage            https://github.com/deepmind/tree 
>> <https://github.com/deepmind/tree>
>> distname            ${github.project}-${version}
>> 
>> checksums           rmd160  40518b306e8f5a80b12ef5e76ca9e2f8ef232de3 \
>>                     sha256  
>> 0748428f70fae2209b8763bf99cadaf22276a4391851ba919dce9d3d0bc047bf \
>>                     size    35176
>> 
>> python.versions     37 38
>> 
>> # Required java version
>> java.version        11+
>> # JDK port to install if required java not found
>> java.fallback       openjdk14
>> # JDK only needed at build time, but java PG sets lib dependency so
>> # declare no conflict to allow redistribution of binaries.
>> license_noconflict  ${java.fallback}
>> 
>> # require c++14
>> compiler.cxx_standard 2014
>> 
>> # The oldest Xcode version to use default Xcode compiler
>> # https://github.com/tensorflow/tensorflow/issues/39262 
>> <https://github.com/tensorflow/tensorflow/issues/39262>
>> set tf_min_xcode    10.2
>> compiler.blacklist-append {clang < 1001}
>> # Work out if we should be using macports clang
>> set use_mp_clang [ expr ( [ string match macports-clang-* 
>> ${configure.compiler} ] || [ vercmp ${xcodeversion} ${tf_min_xcode} ] < 0 ) ]
>> 
>> use_parallel_build  no
>> 
>> if {${name} ne ${subport}} {
>>     depends_build-append \
>>                     port:bazel \
>>                     port:py${python.version}-setuptools
>> 
>>     depends_run-append \
>>                     port:py${python.version}-six \
>> 
>>     depends_test-append \
>>                     port:py${python.version}-absl \
>>                     port:py${python.version}-attrs \
>>                     port:py${python.version}-numpy \
>>                     port:py${python.version}-pytest \
>>                     port:py${python.version}-wrapt
>> 
>>     # diff -NaurdwB ./dm-tree-orig/setup.py ./dm-tree-new/setup.py | sed -E 
>> -e 's/\.\/dm-tree-(orig|new)*\/(setup\.py)(\.[[:alnum:]]+)*/\.\/setup.py/' > 
>> ./setup.py.patch
>>     # patchfiles      setup.py.patch
>> 
>>     # set bazel_output_base   ${workpath}/tmp/_bazel_root
>>     # xinstall -d     ${bazel_output_base}
>>     # post-patch {
>>     #     reinplace \
>>     #         "s|@BAZEL_OUTPUT_USER_ROOT@|${bazel_output_base}|g" \
>>     #         ${worksrcpath}/setup.py
>>     # }
>> 
>>     build.env-append \
>>                     BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
>>                     JAVA_HOME=${java.home}
>> 
>>     test.run        yes
>>     test.cmd        py.test-${python.branch}
>>     test.target
>>     test.env-append \
>>                     "PATH=$env(PATH):${workpath}/bin" \
>>                     PYTHONPATH=${worksrcpath}/build/lib
>> 
>>     post-destroot {
>>         set docdir ${prefix}/share/doc/${subport}
>>         xinstall -d ${destroot}${docdir}
>>         xinstall -m 0644 -W ${worksrcpath} LICENSE README.md \
>>             ${destroot}${docdir}
>>     }
>> 
>>     livecheck.type      none
>> } else {
>>     livecheck.type      pypi
>> }
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to