> On 6 Jul 2020, at 5:22 pm, Steven Smith <steve.t.sm...@gmail.com> wrote:
> 
> I am not using --max_idle_secs=60.
> 
> Also, neither is port py-tensorflow

yes, it does. See

https://github.com/macports/macports-ports/blob/master/python/py-tensorflow/Portfile#L187
 
<https://github.com/macports/macports-ports/blob/master/python/py-tensorflow/Portfile#L187>

Chris

> nor the repo tensorflow/tensorflow itself, nor any other MacPorts repo, and 
> these all build fine without this option:
> https://github.com/macports/macports-ports/blob/master/python/py-tensorflow/Portfile
>  
> <https://github.com/macports/macports-ports/blob/master/python/py-tensorflow/Portfile>
> https://github.com/tensorflow/tensorflow/search?q=max_idle_secs&type=Code 
> <https://github.com/tensorflow/tensorflow/search?q=max_idle_secs&type=Code>
> https://github.com/macports/macports-ports/search?q=max_idle_secs&type=Code 
> <https://github.com/macports/macports-ports/search?q=max_idle_secs&type=Code>
> 
> I’m happy to try adding it, but my expectation is that some other issue is 
> causing the hang when run within the port command (the build itself only 
> takes few seconds when run by hand).
> 
> I must also add the bazel-based builds tensorflow-probability and others, so 
> getting a robust bazel build approach would be very helpful and useful.
> 
> Steve
> 
> 
>> On Jul 6, 2020, at 11:57 AM, Christopher Jones <jon...@hep.phy.cam.ac.uk 
>> <mailto:jon...@hep.phy.cam.ac.uk>> wrote:
>> 
>> 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 
>>> <mailto: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