HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Misleading error msg, Hylafax4.0pl1 faxmodem



>>>>> "G" == Gabriel Fernandez <fernande@cs.sc.edu> writes:

    G> Dear Matthew:
    >> When faxq is not running, invoking faxmodem gives you the
    >> error:
    >> 
    >> FIFO: open: No such device or address
    >> 
    >> If you run faxmodem TOO SOON after faxq, e.g., right after in a
    >> shell script, you get the same problem.  This is a very
    >> misleading error message, since the FIFO pipe exists sure
    >> enough.  I spent quite a bit of time baffled until I just
    >> happened to notice the reason by trial and error.
    >> 
    >> I'll provide my setup details if relevant.

    G>    The details about your setup would be nice. Thanks,

    G> 	Gabriel

If any of the below is not self-explanatory or insufficient, please
let me know, I'll supply what I can.

Here is the problem visualized:

    root# /etc/init.d/hylafax stop
    Stopping HylaFAX Servers.
    root# faxmodem modem
    FIFO: open: No such device or address

WHEREAS

    root# faxq
    root# faxmodem modem
    root# 

AND

    root# /etc/init.d/hylafax stop
    Stopping HylaFAX Servers.
    root# faxq; faxmodem modem
    FIFO: open: No such device or address
    root# 

AND

    root# /etc/init.d/hylafax stop
    Stopping HylaFAX Servers.
    root# faxq; sleep 1; faxmodem modem
    root# 

The tail end of "strace faxmodem modem" is perhaps the most informative:
-------------------------------------------
    personality(PER_LINUX)                  = 0
    geteuid()                               = 0
    getuid()                                = 0
    getgid()                                = 0
    getegid()                               = 0
    stat("/etc/locale/C/libc.cat", 0xbfffe7fc) = -1 ENOENT (No such file or directory)
    stat("/usr/share/locale/C/libc.cat", 0xbfffe7fc) = -1 ENOENT (No such file or directory)
    stat("/usr/share/locale/libc/C", 0xbfffe7fc) = -1 ENOENT (No such file or directory)
    stat("/usr/share/locale/C/libc.cat", 0xbfffe7fc) = -1 ENOENT (No such file or directory)
    stat("/usr/local/share/locale/C/libc.cat", 0xbfffe7fc) = -1 ENOENT (No such file or directory)
    chdir("/var/spool/fax")                 = 0
    open("FIFO", O_WRONLY|O_NONBLOCK)       = -1 ENXIO (No such device or address)
    ioctl(2, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    write(2, "FIFO: open: No such device or ad"..., 37FIFO: open: No such device or address) = 37
    write(2, "\n", 1
    )                       = 1
    _exit(-1)                               = ?
--------------------------------------


WHEREAS

    root# d /var/spool/fax/F*
    prw-------   1 fax      fax             0 Jan 31 15:18 /var/spool/fax/FIFO


That explains an immediate cause of the error, but as to why the call
to open fails, you gots me.

Hylafax4.0pl1 built from scratch after using the patch from pl0.  No snags.

I run Debian 1.2 (fixed) which is:  libc-5.4.20 gcc-2.7.2.1
My config.site is attached below.  

What other system information is relevant?

------------config.site   NOTHING AFTER THIS....

# $Id: config.site,v 1.37 1996/08/19 18:00:44 sam Rel $
#

[...]

#
# Package controls.
#
#AFM="auto"			# install AFM files (auto|yes|no)
#DSO="auto"			# configure DSO support (auto|IRIX|no)
#GETTY="auto"			# type of getty support (auto|BSD|SysV)
#HTML="yes"			# install HTML documentation (yes|no)
#PS="auto"			# PostScript support to use (auto|gs|dps|imp)
#SYSVINIT="auto"		# install SysV-style init support (auto|yes|no)
#SGI2FAX="auto"			# configure SGI image support (auto|yes|no)
#DPS="no"			# install SGI DPS-based RIP (yes|no)
#GS="no"			# install Ghostscript RIP (yes|no)
#IMP="no"			# install SGI Impressario 2.1 support (yes|no)
#REGEX="yes"			# use distributed regular expression package
#ZLIB="yes"			# use distributed zlib distribution
#UTMP="utmpx"			# type of utmp+wtmp handling (auto|utmp|utmpx)
#DBLIB="no"			# use distributed libdb distribution

#
# Directory parameters.
#
#DIR_AFM="/usr/lib/DPS/AFM"		# directory for AFM files
DIR_AFM="/usr/local/lib/gsfonts"		# directory for AFM files
#DIR_BIN="/usr/local/bin"		# directory for client apps
#DIR_LIBDATA="/usr/lib/fax"		# directory for client data
DIR_LIBDATA="/usr/local/lib/fax"		# directory for client data
#DIR_LIBEXEC="/usr/lib/fax"		# directory for libraries&hidden apps
DIR_LIBEXEC="/usr/local/lib/fax"		# directory for libraries&hidden apps
#DIR_MAN="/usr/local/man"		# directory for manual pages
#DIR_SPOOL="/var/spool/fax"		# directory for spooling area
#DIR_SBIN="/var/spool/fax/bin"		# directory for system apps
#DIR_LOCKS="/usr/spool/locks"		# directory for UUCP lock files
DIR_LOCKS="/var/lock"		# directory for UUCP lock files

#
# HTML-specific parameters; only used when the
# HTML package is configured for installation.
#
# Note that ``PATH''s are the virtual pathnames used
# in forming URLs; they are not directory pathnames
# in the filesystem.
#
DIR_HTML="/usr/local/doc/hylafax"	# directory for HTML documentation
DIR_CGI="/usr/lib/cern-httpd/cgi-bin"	# directory for CGI scripts
#HTMLPATH="/hylafax"			# virtual path to HTML materials
#CGIPATH="/cgi-bin"			# virtual path to CGI scripts

#
# Miscellaneous parameters.
#
# Defaults to 98 not 196 as advertised:
DEFVRES="196"				# default vertical res for outbound fax
#FILLORDER="MS2LSB"			# bit order of cpu (MSB2LSB/LSB2MSB)
#FAXGID="uucp"				# group ID for fax user
#FAXUID="uucp"				# user ID for fax user
FAXGID="fax"				# group ID for fax user
FAXUID="fax"				# user ID for fax user
#PAGESIZE="North American Letter"	# default page size
#SYSGID="sys"				# group ID for system installs
#SYSUID="bin				# user ID for system installs

# default is actually "ascii"
#LOCKS="ansi"				# default UUCP lockfile scheme
LOCKS="ansi"				# default UUCP lockfile scheme
#
PATH_GETTY="/sbin/getty"		# pathname of suitable getty program
#PATH_VGETTY="/bin/vgetty"		# pathname of voice getty program
#PATH_EGETTY="/bin/egetty"		# pathname of external getty program
#PATH_SENDMAIL="/usr/lib/sendmail"	# pathname of suitable sendmail program
PATH_GSRIP="/usr/bin/gs"		# pathname of Ghostscript-based RIP
#PATH_DPSRIP="/var/spool/fax/bin/ps2fax.exe"	# pathname of DPS-based RIP
#PATH_IMPRIP="/usr/lib/print/psrip"	# pathname of Impressario 2.1 RIP
#MANSCHEME="sysv-source-cat-strip"	# manual page installation scheme

#
# Parameters used when building the software.
#
# Note that configure has several ENVOPTS built into it that are
# set according to the target.  This is done to help naive folks.
#
# Beware of changing the INSTALL definition; you *must* have an
# install script that emulates the Silicon Graphics install program!
#
#AR="/bin/ar"				# pathname of suitable ar program
#AROPTS="rc"				# options to ar for creating archive
#CC="gcc"				# name/pathname of C compiler
#CXX="gcc"				# name/pathname of C++ compiler
#CXXFILE="-x c++"			# options for proper C++ processing
#ENVOPTS="-Aa"				# options for getting ANSI C
#GCOPTS="-g"				# options to pass C compiler
#GCXXOPTS="-g"				# options to pass C++ compiler
GCOPTS="-O3"				# options to pass C compiler
GCXXOPTS="-O3"				# options to pass C++ compiler
#GENDIST="/sbin/gendist"		# pathname of SGI inst generator program
#INSTALL='${SHELL} ${PORT}/install.sh'	# SGI install program/emulator
#LIBMALLOC="auto"			# yes|no|auto configure -lmalloc use
#LIBPORT='${PORT}/libport.a'		# library with emulation code
#LIBSUN="auto"				# yes|no|auto configure -lsun use
#LLDOPTS=""				# extra link line options
#MACHDEPLIBS=""				# extra libraries for linking
#PORTFUNCS=""				# non-standard functions to emulate
#PROTOTYPES="-prototypes"		# C compiler options for checking function prototypes
#RANLIB=":"				# pathname of suitable ranlib program
#SHDLIBC="-lc_s"			# shared C library, if not standard
#SIGHANDLERTYPES='(void(*)(int,...))'	# types to check for signal handler
#STRIP="/bin/strip"			# strip program used by install.sh

#
# The source for the TIFF library is not required
# to build this software, but the library is required
# to link against.  If libtiff is installed in a
# non-standard location then setup LIBTIFF accordingly.
#
#LIBTIFF="-L/usr/local/lib -ltiff"	# linkage convention for libtiff
#TIFFINC="/usr/local/include"		# place to find tiffio.h
#TIFFBIN="/usr/local/bin"		# where TIFF tools live

#LIBTIFF="-L/usr/lib -ltiff"	# linkage convention for libtiff
#TIFFINC="/usr/include"		# place to find tiffio.h
#TIFFBIN="/usr/bin"		# where TIFF tools live

###  The Debian tiff package does not work, I don't know why!

LIBTIFF="-L/usr/local/src/comm/fax/installed/tiff-v3.4beta035/libtiff -ltiff"
TIFFINC="/usr/local/src/comm/fax/installed/tiff-v3.4beta035/libtiff"
TIFFBIN="/usr/local/src/comm/fax/installed/tiff-v3.4beta035/tools"

#
# The source for the ZLIB library is not required
# to build this software, but the library is required
# to link against.  If the copy of the software that is
# include in this distribution is not to be used then
# set ZLIB=no and supply the following definitions.
#
#LIBZ="-L/usr/local/lib -lz"		# linkage convention for libz
#ZLIBINC="/usr/local/include"		# place to find zlib.h

#
# The source for the POSIX regular expression package
# is not required to build this software, but the package
# is required to link against.  If the copy of the software
# that is included in this distribution is not to be used
# then set REGEX=no and supply the following definitions.
#
#LIBREGEX=" "				# linkage convention for regex package
#REGEXINC="/usr/include"		# place to find regex.h

#
# The LIBDB hashed database package is (currently) used
# only by the MLA tools that are not publicly available
# but which are built from within this source tree.  In
# the future the fax software may use the libdb software
# for the remote client capabilities database (so these
# hooks are included now).
#
# The source for the LIBDB hashed database package
# is not required to build this software, but the package
# is required to link against.  If the copy of the software
# that is included in this distribution is not to be used
# then set DBLIB=no and supply the following definitions.
#
#LIBDB=" "				# linkage convention for libdb package
#DBLIBINC="/usr/include"		# place to find db.h

#
#Parameters to control various workarounds for system bugs.
#
# These parameters are normally set in configure based on
# the target system.  If they are set here, then they will
# override anything done by configure.
#
#CONFIG_OPENFIFO="O_RDONLY"		# mode to open FIFOs in server proc's
#CONFIG_FIFOBUG="yes"			# enable workaround for FIFO select bug
#CONFIG_SELECTBUG="no"			# enable workaround for select problem
#CONFIG_TIOCMBISBYREF="yes"		# pass arg by reference to ioctl
#CONFIG_WINSZHACK="no"			# include extra files for TIOCWINSZ use
#CONFIG_ABORTBUG="no"			# enable workaround for abort problems
#CONFIG_NOREOPEN="yes"			# reopen tty device after toggling DTR
#CONFIG_NOSTDINDUP="yes"		# do not redirect stdout to stdin in ondelay
#CONFIG_BADEXECVPROTO="no"		# system has incorrect execv func decl
#CONFIG_BADEXECVEPROTO="no"		# system has incorrect execve func decl
#CONFIG_BADGETOPTPROTO="no"		# system has incorrect getopt func decl
#CONFIG_SOCKARGLENTYPE="unsigned long"	# call-by-ref arg type for socket funcs
#CONFIG_BADSELECTPROTO="no"		# system has way old select func decl

#
# Dynamic Shared Object (DSO) support.
#
# Beware that adding new support for DSOs may require some
# modifications to the */Makefile.dso files.
#
#DSOSUF="so"				# DSO filename suffix
#DSODELAY="-delay_load"			# DSO option for delayed loading
#DSOOPTS="-shared -rdata_shared"	# options for building DSOs

#
# Makefile construction parameters.
#
# These should not normally be set; configure will
# deduce the appropriate syntax to use for includes.
#
#MAKECXXOVERRIDE="=.C"			# make override stuff for SunPRO C++
#MAKEDEPINCLUDE="include"		# make include for dependency files
#MAKEDSOINCLUDE="#"			# make include for DSO support
#MAKEINCLUDE=".include"			# make include syntax
#MAKELQUOTE="<"				# make include syntax
#MAKERQUOTE=">"				# make include syntax
#SETMAKE='MAKE	= ${MAKE}'		# define if make does not setup $MAKE

#
# General system stuff used by the distribution.
#
# Beware of setting these as configure selects several programs
# based on whether or not they are capable of processing scripts
# included in the distribution (e.g AWK and SCRIPT_SH, SED).
#
#AWK="/bin/awk"				# pathname of suitable awk program
#CAT="/bin/cat"				# pathname of suitable cat program
#CHGRP="/etc/chgrp"			# pathname of suitable chgrp program
#CHMOD="/etc/chmod"			# pathname of suitable chmod program
#CHOWN="/etc/chown"			# pathname of suitable chown program
#CMP="/bin/cmp"				# pathname of suitable cmp program
#COL="/bin/col"				# pathname of suitable col program
#CP="/bin/cp"				# pathname of suitable cp program
#ECHO="/bin/echo"			# pathname of suitable echo program
#GREP="/bin/grep"			# pathname of suitable grep program
#LN="/bin/ln"				# pathname of suitable ln program
#LN_S="-s"				# option to ${LN} to create symlink
#MAN="/usr/bin/man"			# pathname of suitable man program
#MKDIR="/bin/mkdir"			# pathname of suitable mkdir program
#MKFIFO="/bin/mkfifo"			# pathname of suitable mkfifo program
#MV="/bin/mv"				# pathname of suitable mv program
#MV_F="-f"				# option to ${MV} to force operation
#RMCMD="/bin/rm"			# pathname of suitable rm program
#SED="/bin/sed"				# pathname of suitable sed program
#SCRIPT_SH="/bin/sh"			# pathname of suitable shell
#SORT="/bin/sort"			# pathname of suitable sort program




Project hosted by iFAX Solutions