[yocto] yocto-kernel-tools and multiple users
Bruce Ashfield
bruce.ashfield at gmail.com
Thu Dec 1 14:28:20 PST 2016
On Thu, Dec 1, 2016 at 3:05 PM, Trevor Woerner <twoerner at gmail.com> wrote:
> I believe a recent change in the yocto-kernel-tools is causing some funny
> issue I saw this morning on my overnight jenkins builds.
>
> commit 08463d684c1952e74c25344cddace4c3f24c739d
> Date: Mon Oct 31 14:30:12 2016 -0400
>
> scc: exit on error
>
> If there is an error in the processing of the input files, scc
> should exit and inform the user.
>
> scc is executed on a combined/preprocessed file and as a result
> it doesn't have the granularity to see each input file
> individually.
>
> Rather than moving preprocessing into scc (from spp), we can
> trap
> the line number of the error and dump context around the line.
> This
> gives the user a pointer to the input file and the specific
> line
> that caused the problem.
>
> Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
>
> diff --git a/tools/scc b/tools/scc
> index b6ab747..0294103 100755
> --- a/tools/scc
> +++ b/tools/scc
> @@ -238,18 +238,37 @@ process_file()
> done
>
> unset PATH
> - if [ -n "${verbose}" ]; then
> - eval . $in $outfile_append
> - else
> - # hide stderr if we aren't verbose
> - eval . $in $outfile_append 2> /dev/null
> - fi
> + (
> + set -e
> + eval . $in $outfile_append > /tmp/scc-output 2>&1
> + )
> + )
>
> - if [ $? -ne 0 ]; then
> - echo "[ERROR]: processing of file $in failed"
> - exit 1
> + if [ $? -ne 0 ]; then
> + echo "[ERROR]: processing of file $in failed"
> + cat /tmp/scc-output
> +
> + # look for common errors so we can point to the right
> input file
> +
> + # 1) /tmp/tmp.gfN6WsbDHN: line 403: cat: No such file or
> directory
> + # "grep -oh" will only output what matches, which
> gets us "line 404: .."
> + # cut gets us the second field, which is the line
> number
> + line=$(cat /tmp/scc-output | grep -oh "line.*:" | cut -f2
> -d' ' | sed 's/://g')
> + if [ -n "$line" ]; then
> + let start_line=$line-20
> + let end_line=$line+10
> + if [ $start_line -lt 0 ]; then
> + start_line=0
> + fi
> + echo ""
> + echo "Context around the error is:"
> + echo ""
> + sed -n -e "$start_line,$end_line p" -e "$end_line q"
> $in | sed 's/^/ /'
> + echo ""
> + echo "See pre-processed file $in for more details"
> fi
> - )
> + exit 1
> + fi
>
> return 0
> }
>
> In order to catch errors, scc's output is being hardcoded to
> /tmp/scc-output.
> But on my box there are two users who perform builds: jenkins and myself.
> When
> the second person comes along to do a build it finds inadequate
> permissions on
> /tmp/scc-output.
>
> Is anyone else seeing this?
>
Gah, that's my bad. I'm currently in transit for a trip to Europe, but I'll
fix this
to use mktmp and friends tomorrow and send out a patch.
Bruce
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
--
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20161201/373be23d/attachment.html>
More information about the yocto
mailing list