Hi there
After upgrading our build config from nodejs 8 and python2 to nodejs 11 and python3, our builds fail in the middle with error:
tee: standard output.
also cache upload fails for no reported reasons.
Anyone got an idea how to fix this?
Hi there
After upgrading our build config from nodejs 8 and python2 to nodejs 11 and python3, our builds fail in the middle with error:
tee: standard output.
also cache upload fails for no reported reasons.
Anyone got an idea how to fix this?
Can’t say anything without seeing the build.
What information do you need?
Just got this again:
tee: ‘standard output’: Resource temporarily unavailable
out of nowhere after roughly 16k lines
As @native-api stated,
It would really help to see more of your .travis.yml
file or more of the build.
From this, I believe you’re overloading the logging system by producing too much output too fast:
In any case, I need to see the build to say for sure, this is just speculation.
Here my yml config:
os: linux
dist: xenial
env:
global:
- PATH=$HOME/.local/bin:$PATH
language: java
jdk:
- openjdk11
python:
- "3.5"
services:
- mysql
addons:
sonarcloud:
organization: "tamedia-pmd"
token: ${SONAR_TOKEN}
before_script:
- wget https://repo.mysql.com/mysql-apt-config_0.8.10-1_all.deb
- sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
- sudo apt-get update -q
- sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
- sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
- sudo cp "$TRAVIS_BUILD_DIR/.travis_config/mysql/my.cnf" /etc/mysql/my.cnf
- sudo systemctl restart mysql
- sudo mysql_upgrade
before_install:
- mysql -e 'CREATE DATABASE IF NOT EXISTS ci_tamedia;'
- mysql -e "GRANT ALL ON ci_tamedia.* TO 'hybris'@'%' IDENTIFIED BY 'hybris';"
- pyenv global 3.7.1
- pip install --upgrade pip
- pip install --user awscli
- python3 -c 'import os,sys; os.set_blocking(sys.stdout.fileno(), True)'
- nvm use 11
git:
quiet: true
depth: false
cache:
directories:
- $HOME/.m2
- $HOME/.gradle
jobs:
include:
- stage: "deploy"
name: "Create Deployment Package"
if: tag IS present
script:
- cd build
- export BUILD_NUMBER=$TRAVIS_BUILD_NUMBER; export JOB_NAME=$TRAVIS_JOB_NAME; export GIT_BRANCH=$TRAVIS_BRANCH; export GIT_COMMIT=$TRAVIS_COMMIT; export BUILD_ID=$TRAVIS_BUILD_ID
- bash gradlew --quiet clean all || travis_terminate 1;
- bash gradlew --quiet production || travis_terminate 1;
- bash gradlew publish -Pversion=${TRAVIS_TAG}
- stage: "build"
name: "CI Build"
if: branch IN (develop, master) || type = pull_request || (branch =~ support/* AND type = push)
script:
- cd build
- bash build.sh || travis_terminate 1;
- bash unittests.sh
- bash allwebtests.sh
- bash integrationtests.sh
- bash checkLogs.sh unittests.log;
- bash checkLogs.sh allwebtests.log;
- bash checkLogs.sh integrationtests.log;
- bash gradlew copyFilesTask;
- bash gradlew generateJacocoReport;
- cd ..
- CURRENTVERSION=`git describe`
- sonar-scanner -Dsonar.projectVersion=${CURRENTVERSION}
notifications:
slack:
rooms:
- secure: ${SLACK_SECRECT}
on_success: change
on_failure: always
on_pull_requests: true
The tee is in the test shell scripts:
./gradlew -Psystem="ci" -Dtestclasses.packages='com.unic.*, com.tamedia.*' -DHYBRIS_LOG_DIR=${TRAVIS_BUILD_DIR}/hybris/log/junit/integration -DHYBRIS_TEMP_DIR=${TRAVIS_BUILD_DIR}/hybris/temp/junit/integration --quiet integrationtests | tee -i integrationtests.log
So I can ready with checkLogs.sh if some tests failed. Our gradle build generates quite some output, we already have it on quiet mode to not exceed 50k lines. But I can not reduce it more. That is due to the framework we use for the project.
If anyone has an idea to improve the build process/pipeline I would be really happy. We never bothered as it was running.
The author of Build log truncated pipes the output through pv -q -L 1K
to throttle output speed.
You need to install the pv
Apt package to get this utility.
That does work but makes the build much slower.
You can try higher speed limits.