Tru64 : Intermittent errors when saving a file
Assar Westerlund
assar at stacken.kth.se
Sun Jul 15 06:01:02 CEST 2001
Michel Jouvin <jouvin at lal.in2p3.fr> writes:
> We installed arla on a Tru64 v5.1 machine. Basically it works. but users
> are reported abnormal errors when trying to save a file from an editor
> (xemacs). Generally it works but from time to time it says "opening output
> file interrupted system..." (user says there is quite a long message but I
> am not at the lab and I am not able to check it exactly). If he/she retries
> to save it works.
>
> Does it sound as something known ? This behaviour doesn't exist with an AFS
> client.
Yes, this is an old problem that was fixed a long time ago, but it
needs to be fixed just a little bit different on 5.1. Can you try
applying the appended patch? I don't seem to be able to get the
problem with tihs this patch. Thanks for bringing this up.
/assar
Index: xfs_dev-common.c
===================================================================
RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/bsd/xfs_dev-common.c,v
retrieving revision 1.44
retrieving revision 1.44.2.1
diff -u -w -u -w -r1.44 -r1.44.2.1
--- xfs_dev-common.c 2001/01/07 03:06:53 1.44
+++ xfs_dev-common.c 2001/07/15 03:55:37 1.44.2.1
@@ -399,7 +399,7 @@
struct xfs_link *this_message;
struct xfs_link *this_process;
struct xfs_message_header *msg;
-#if defined(HAVE_STRUCT_PROC_P_SIGMASK) || defined(HAVE_STRUCT_PROC_P_SIGCTX)
+#if defined(HAVE_STRUCT_PROC_P_SIGMASK) || defined(HAVE_STRUCT_PROC_P_SIGCTX) || defined(__osf__)
sigset_t oldsigmask;
#endif
int catch;
@@ -451,16 +451,24 @@
*/
#ifdef HAVE_STRUCT_PROC_P_SIGMASK
+ /* NetBSD 1.5, Darwin 1.3, FreeBSD 4.3, 5.0, OpenBSD 2.8 */
oldsigmask = proc->p_sigmask;
xfs_block_sigset (&proc->p_sigmask);
#elif defined(HAVE_STRUCT_PROC_P_SIGCTX)
+ /* NetBSD 1.6 */
oldsigmask = proc->p_sigctx.ps_sigmask;
xfs_block_sigset (&proc->p_sigctx.ps_sigmask);
#elif defined(HAVE_STRUCT_PROC_P_SIGWAITMASK)
+ /* OSF 4.0 */
oldsigmask = proc->p_sigwaitmask;
sigaddset(&proc->p_sigwaitmask, SIGIO);
sigaddset(&proc->p_sigwaitmask, SIGALRM);
sigaddset(&proc->p_sigwaitmask, SIGVTALRM);
+#elif defined(__osf__)
+ oldsigmask = u.u_sigmask;
+ sigaddset(&u.u_sigmask, SIGIO);
+ sigaddset(&u.u_sigmask, SIGALRM);
+ sigaddset(&u.u_sigmask, SIGVTALRM);
#endif
/*
@@ -495,6 +503,8 @@
proc->p_sigctx.ps_sigmask = oldsigmask;
#elif defined(HAVE_STRUCT_PROC_P_SIGWAITMASK)
proc->p_sigwaitmask = oldsigmask;
+#elif defined(__osf__)
+ u.u_sigmask = oldsigmask;
#endif
/*
More information about the Arla-drinkers
mailing list