Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zsh 4.0.4 core dump



>>>>> "Peter" == Peter Stephenson <pws@xxxxxxx> writes:

    Peter> Paul Lew wrote:
    >> Program terminated with signal 10, Bus Error.
    >> #0  0x2af38 in bin_dot (name=0x0, argv=0x1, ops=0x39ce7 "", func=-4264968)
    >> at builtin.c:3380
    >> 3380                    if (!(*t)[0] || ((*t)[0] == '.' && !(*t)[1])) {
    >> 
    >> Seems like our precmd triggered a bug.  Has this been reported
    >> at all?

    Peter> Haven't seen this.  What does the precmd look like?

The precmd defined as:

# From: Andrew J Cosgriff <Andrew.Cosgriff@xxxxxxxxxxxxxxxx>
# Date: Thu, 10 Jul 1997 09:12:11 +1000
precmd () {
        if [[ -o interactive ]]; then
                # Get a list of suspended jobs to put in the command
                # line.  Have to use a temporary file because it is
                # the only way we can run the jobs builtin and set a
                # variable within the current shell - doing either of
                # these in a subshell defeats the purpose.  The jobs
                # command outputs to stderr.  Use the current hostname
                # and process ID to ensure that there is no problems
                # even if /tmp is mounted across filesystems.
                builtin jobs -r >&! /tmp/jobs$HOST$$
                if [[ -s /tmp/jobs$HOST$$ ]]; then
                        # There is at least one suspended job.  Glean
                        # the job numbers from the file.  Surround the
                        # text with the relevant description and
                        # proper number of spaces.
                        psvar[4]="`sed -n 's/^\[\([^]]*\)\].*$/\1 /p'
                        \
                         < /tmp/jobs$HOST$$ | tr -d '\012'`"
                else
                        # No jobs - we can skip the calls to sed and
                        # tr.
                        psvar[4]=""
                        fi
                /bin/rm /tmp/jobs$HOST$$
                jobs -s
                fi
        }

    Peter> What was $path supposed to be at this point?  In
    Peter> particular, could anything have been manipulating $path?

Our path is long:

     1  W .
     2  W /auto/insbu-cnstools/ar/bin
     3  W /auto/insbu-cnstools/ar/sh
     4  W /auto/insbu-cnstools/ar/perl
     5  W /auto/insbu-cnstools/bin
     6  W /auto/insbu-cnstools/sbin
     7  W /auto/cnsadpub/cns/bin
     8  W /auto/insbu-cnstools/apache/bin
     9  W /auto/insbu-cnstools/mysql/bin
    10    /nfs/csc/mib-release/bin
    11  W /auto/insbu-cnstools/java/bin
    12  W /auto/insbu-cnstools/jakarta-ant-1.4/bin
    13    /usr/cisco/bin
    14    /usr/local/bin
    15    /usr/local/sbin
    16    /usr/dt/bin
    17    /router/bin
    18    /usr/atria/bin
    19    /auto/ddts/ddtshome/bin
    20    /usr/openwin/bin
    21    /sbin
    22    /usr/sbin
    23    /usr/ccs/bin
    24    /usr/openwin/bin
    25    /usr/ucb
    26    /usr/bin
    27    /bin
    28    /etc
    29    /usr/games

The first 3 elements might be changing while the shell is running,
i.e., the entire directories were removed and repalced.  Any old
pointer to these file will not be valid.  However, this maybe the 2nd
problem we seen.  The first problem is zsh cored after long idling
time.  All the path elements above with /auto and /nfs are subject to
be dismounted by the automount daemon.



Messages sorted by: Reverse Date, Date, Thread, Author