HylaFAX The world's most advanced open source fax server

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

sinclude problem




Dear all,

I have got into problem when I try to build the hylafax 4.0 patch level
1 on my BSDI machine:

1. When I finish configure and execute "make", there come up the error
messages:

"Makefile", line 42: Need an operator
"Makefile", line 67: Need an operator
"Makefile", line 383: Need an operator 

It seems that there are some syntax error in "Makefile". I have correct
the "include" to ".include" and quote the include file names.

2. When I try to execute "make" again, there comes another error:

"rules", line 197: Need an operator
Fatal errors encountered -- cannot continue

I found that line 197 is follow:
sinclude ${MKDEPFILE}  

Could someone tell me what's going wrong. Thank you!

Best regards,
Stone/<stones@iname.com>
                                       
Date: Mon, 28 Apr 1997 03:47:21 -0400 (EDT)
From: Robert Weiner <robert@progplus.com>
To: flexfax@sgi.com
Subject: Re: hfaxd(1M) dumps core for SNPP on SVR4
Sender: owner-flexfax@celestial.com


Reply to an old email so I included most of it below...

I finally found the time to upgrade my Hylafax to 4.0pl1 under SCO
OpenServer 3.2v4.2 and can confirm the "hfaxd crashing after page" problem
reported by Matthias.  GNU tools: gcc-2.7.0 and libg++-2.7.0a-1.  Modem:
Multitech 2834ZDX.

Did anyone find a fix yet?  (I didn't see a reply to this in the archives) 

I found that 'sendpage -q' (queued page, returns immediately) does not
trigger this bug where 'sendpage' (interactive wait for completion) does. 
Except for the syslog of "HylaFAX: CAUGHT SIGNAL 11" on the hfaxd child
process (which triggers the resulting sendpage error message), everything
else seems to work correctly with the page.

Here's the gdb-4.14 trace (I'm sorry if any line numbers are slightly off,
I was playing around inserting extra malloc/new and free/delete code
during my tests).  Basically, it does seem to always SEGV inside malloc. 

By inserting a 'malloc(128)' call before the 'new' line Matthias mentions
below, I found that it crashes in that malloc(128).  Note that inserting
'malloc(1)' didn't trigger a crash in malloc(1)... but it still crashed in
the 'new'.  I'd say that malloc's internal data structures got trashed
somewhere along the way. 

The gdb-4.14 trace:

Program received signal SIGSEGV, Segmentation fault.
0x6b5c0 in malloc ()
(gdb) where
#0  0x6b5c0 in malloc ()
#1  0x6bebc in __builtin_new (sz=44)
#2  0x1ccf in update__9FileCachePCcR4statUc (pathname=0x410290 "/doneq/q25", sb=0x7ffffa50,
    addToCache=1 '\001') at FileCache.c++:233
#3  0xb652 in findJobOnDisk__13HylaFAXServerPCcR5fxStr (this=0x410850, jid=0x40daa0 "25",
    emsg=0x7ffffb9c) at Jobs.c++:947
#4  0xbb22 in findJob__13HylaFAXServerPCcR5fxStr (this=0x410850, jobid=0x40daa0 "25",
    emsg=0x7ffffb9c) at Jobs.c++:1052
#5  0x260c7 in sendCmd__10SNPPServer (this=0x410850) at SNPPServer.c++:1284
#6  0x23c60 in cmd__10SNPPServer5Token (this=0x410850, t=T_SEND) at SNPPServer.c++:650
#7  0x233cf in parse__10SNPPServer (this=0x410850) at SNPPServer.c++:502
#8  0x730c in inputReady__13HylaFAXServeri (this=0x410850, fd=0) at HylaFAXServer.c++:413
#9  0x33089 in notify__10DispatcheriR6FdMaskN22 (this=0x40f528, nfound=1,
    rmaskret=0x7ffffcb8, wmaskret=0x7ffffca4, emaskret=0x7ffffc90) at Dispatcher.c++:664
#10 0x32cba in dispatch__10DispatcherP7timeval (this=0x40f528, howlong=0x0)
    at Dispatcher.c++:546
#11 0x32a67 in dispatch__10Dispatcher (this=0x40f528) at Dispatcher.c++:508
#12 0x284be in main (argc=7, argv=0x7ffffdc4, envp=0x7ffffde4) at main.c++:319
(gdb)

On Sun, 15 Sep 1996, Matthias Apitz wrote:

> From: Matthias Apitz <Matthias.Apitz@SOFTCON.de>
> Subject: hfaxd(1M) dumps core for SNPP on SVR4
> 
> The hfaxd(1M) child dumps core during SNPP-handling if the job
> is done.  At user-level in sendpage(1) this looks like:
> 
> $ sendpage -p 49171....... "hello world"
> destination pin 49171.......: request id is 32 for host localhost
> sendpage: Service not available, remote server closed connection
> sendpage:
> $
> 
> The page is sent anyway.
> 
> hfaxd(1M) awaits the message from faxq(1M) about the job done
> and then checks with stat(2) for "spool/sendq/q32" and for
> "spool/doneq/q32" (the job is moved to "spool/doneq/" by
> faxq(1M)). While allocating a new FileCache entry in hfaxd/FileCache.c++
> 
> FileCache::update( ... )
> 	...
>     /*
>      * Pathname not found in the cache.
>      */
>     if (Sys::stat(pathname, sb) < 0)
>         return (FALSE);
>     if (addToCache && pathname[0] != '.') {
>         if (fi) {
>             fi = oldest;
>             displaced++;
>         } else {
>             write(99, "newFileCache", strlen("newFileCache")); // DEBUG
>             fi = cache[h] = new FileCache;
>             write(99, "got?", strlen("got?"));                 // DEBUG
>         }
>         fi->name = pathname;
>         fi->serial = master++;
>         fi->sb = sb;
>     }
>     return (TRUE);
> 
> it dumps core. I've added two write(99,.....) statements to locate
> the place in the truss(1)-output of hfaxd(1M):
> 
>         poll(0x08045508, 2, -1)                         = 1
>         read(3, " S *\0", 2047)                         = 3
>         read(3, 0x08046D1C, 2047)                       = 0
>         poll(0x08045628, 2, -1)                         = 1
>         read(3, " !  02\0 :\004\0 cE1 ; 2".., 2047)     = 58
>         xstat(2, "/sendq/q32", 0x08046C58)              Err#2  ENOENT
>         read(3, 0x08046E3C, 2047)                       = 0
>         xstat(2, "/sendq/q32", 0x08047774)              Err#2  ENOENT
>         xstat(2, "/doneq/q32", 0x08047774)              = 0
>         write(99, " n e w F i l e C a c h e", 12)       Err#9  EBADF
>         ^^^^^^^^^^^^^^^^^^^^^^
>             Incurred fault #6, FLTBOUNDS  %pc = 0x0808EC0A
>               siginfo: SIGSEGV SEGV_ACCERR addr=0x00000004
>             Received signal #11, SIGSEGV [caught]
>               siginfo: SIGSEGV SEGV_ACCERR addr=0x00000004
> 
> As you can see from the truss(1) the 2nd write(99....) is not
> reached. I've no idea what should be wrong w/ the statement
> 	....
> 	fi = cache[h] = new FileCache;
> 	....
> 
> It's difficult for me to debug this 'cuze the gcc doesn't
> write debug information on SVR4. For me this looks like
> a "random writing to memory" at some other place.
> 
> Is someone also debuging this problem? Does this problem
> exist also on other systems?
> 
> 	matthias
> 

--
Robert Weiner / Programming Plus	Hardware & Software Consulting
Email: robert@progplus.com		Web: http://www.progplus.com




Project hosted by iFAX Solutions