[comp.mail.elm] elm destroys links!

mike@cochise (07/14/89)

Hi there,

I've just noticed a very annoying thing about ELM 2.2 PL10. The
situation is as follows:

since we have local aliasas for our internal mail (handled by
smail 2.5), mail to user xxx (from inside the Co.) is to 'x' (his
local alias), while mail from him has his logname (xxx) in the 
From:-line.

Wanting to save both in the same folder, I link ~/Mail/xxx to
~/Mail/x, which seems to work fine as long as I save messages
sent to my by xxx, ie. I see them in both folders -> the link
remains. BUT: when I send to the person (using 'M'ail), elm saves
the message in one of the folders (namely ~/Mail/x) and destroys
the link to the other !-(.

Can this be considered a bug worth fixing? It certainly bothers a
lot of people around here.
--
Mike Schroeder		PCS-Mail: msc
DOMAIN:  msc@cochise.pcs.de (EUR) or  msc@cochise.pcs.com  (US)
BANG:    ..unido!pcsbst!msc (EUR) or  ..pyramid!pcsbst!msc (US)

silvert@cs.dal.ca (Bill Silvert) (07/24/89)

In article <924@pcsbst.UUCP> mike@cochise writes:
>I've just noticed a very annoying thing about ELM 2.2 PL10. The
>situation is as follows:
>
>Wanting to save both in the same folder, I link ~/Mail/xxx to
>~/Mail/x, which seems to work fine as long as I save messages
>sent to my by xxx, ie. I see them in both folders -> the link
>remains. BUT: when I send to the person (using 'M'ail), elm saves
>the message in one of the folders (namely ~/Mail/x) and destroys
>the link to the other !-(.
>
>Can this be considered a bug worth fixing? It certainly bothers a
>lot of people around here.
>--
>Mike Schroeder		PCS-Mail: msc
>DOMAIN:  msc@cochise.pcs.de (EUR) or  msc@cochise.pcs.com  (US)
>BANG:    ..unido!pcsbst!msc (EUR) or  ..pyramid!pcsbst!msc (US)

I agree, this behaviour (which did not occur in 1.5) is a problem.  My
situation is probably very common -- when I correspond with someone
called, say, ia89xp57, I link this mail folder with one called sam or
something that a human is likely to rmember.  That way I can easily find
past correspondence.

The new system is really a problem when cleaning out old files.  How am
I supposed to remember who ia89xp57 is?  So if I decide I am through
with sam, I just echo "" > sam (I have a fancier eraser actually) and
then when I see that ia89xp57 is empty I know that I can safely erase
it.  This unlinking feature of ELM 2 has me tearing my hair out.
-- 
Bill Silvert, Habitat Ecology Division.
Bedford Institute of Oceanography, Dartmouth, NS, Canada B2Y 4A2
	UUCP: ...!{uunet,watmath}!dalcs!biomel!bill
	Internet: biomel@cs.dal.CA	BITNET: bs%dalcs@dalac.BITNET

rob@PacBell.COM (Rob Bernardo) (07/25/89)

In article <924@pcsbst.UUCP> mike@cochise writes:
+Hi there,
+
+I've just noticed a very annoying thing about ELM 2.2 PL10. The
+situation is as follows:
+
+since we have local aliasas for our internal mail (handled by
+smail 2.5), mail to user xxx (from inside the Co.) is to 'x' (his
+local alias), while mail from him has his logname (xxx) in the 
+From:-line.
+
+Wanting to save both in the same folder, I link ~/Mail/xxx to
+~/Mail/x, which seems to work fine as long as I save messages
+sent to my by xxx, ie. I see them in both folders -> the link
+remains. BUT: when I send to the person (using 'M'ail), elm saves
+the message in one of the folders (namely ~/Mail/x) and destroys
+the link to the other !-(.

I'm confused. Could you tell us step by step what you do? I can't
imagine that elm unlinks a file and recreates it when merely appending
a message to an existing file (as occurs when you save a copy of
outbound mail or save an incoming message from you mailbox).
-- 
Rob Bernardo      ...![backbone]!pacbell!pbhyf!rob -or- rob@pbhyf.PacBell.COM
  Product engineer, UNIX/C Reusable Code Library        Editor, "Go `C' UNIX"
  Office: (415) 823-2417                Pacific * Bell, San Ramon, California
  Residence: (415) 827-4301                     R BAR JB, Concord, California

tmoore@ciss.Dayton.NCR.COM (Tom.Moore@ciss.Dayton.NCR.COM) (07/26/89)

rob@PacBell.COM (Rob Bernardo) writes:

>I'm confused. Could you tell us step by step what you do? I can't
>imagine that elm unlinks a file and recreates it when merely appending
>a message to an existing file (as occurs when you save a copy of
>outbound mail or save an incoming message from you mailbox).

I have had this problem too and would like to see it resolved.

To recreate it:

1.  Link an existing mail folder to a new name.
2.  Fire up elm.
3.  Change folders to one of the linked folders.
4.  Delete a message.
5.  Quit elm and answer yes to the delete messages question.
6.  Do an ls -i on the subject folders.  Surprise!

Doesn't elm have to do a delete and a selective copy back when making 
deletions to a mail folder?

Hope this helps.

-- 
* Tom Moore                NCR Corporation  PCD-6              (513) 445-1373 *
* Consulting Analyst       1700 S. Patterson Blvd.         VOICEplus 622-1373 *
* Network Applications     Dayton, OH 45479          Tom.Moore@Dayton.NCR.COM *

rob@PacBell.COM (Rob Bernardo) (07/28/89)

In article <816@ciss.Dayton.NCR.COM> tmoore@ciss.Dayton.NCR.COM (Tom.Moore@ciss.Dayton.NCR.COM) writes:
+rob@PacBell.COM (Rob Bernardo) writes:
+
+>I'm confused. Could you tell us step by step what you do?

+I have had this problem too and would like to see it resolved.
+
+To recreate it:
+
+1.  Link an existing mail folder to a new name.
+2.  Fire up elm.
+3.  Change folders to one of the linked folders.
+4.  Delete a message.
+5.  Quit elm and answer yes to the delete messages question.
+6.  Do an ls -i on the subject folders.  Surprise!


Many thanks for the details.

Being familiar with how elm opens and leaves mail folders, I see no
why around this. When elm leaves a mail folder and the contents have
changed (e.g. at least one message was deleted or saved to another folder),
it needs to recreate the folder with only the remaining messages.

Hmm. If ELM were to fopen([folder], "w") to truncate the existing folder
when recreating it, would that keep the links? A lot of the leavembox()
routine would need to be rewritten to accomodate this possibility, esp.
with mail spool mailboxes, because of the intricacies of the locking
and other conditions.
-- 
Rob Bernardo      ...![backbone]!pacbell!pbhyf!rob -or- rob@pbhyf.PacBell.COM
  Product engineer, UNIX/C Reusable Code Library        Editor, "Go `C' UNIX"
  Office: (415) 823-2417                Pacific * Bell, San Ramon, California
  Residence: (415) 827-4301                     R BAR JB, Concord, California

silvert@cs.dal.ca (Bill Silvert) (07/30/89)

In article <5849@pbhyf.PacBell.COM> rob@PacBell.COM (Rob Bernardo) writes:
>Being familiar with how elm opens and leaves mail folders, I see no
>why around this [destroying links]

Since ELM 1.5b did not destroy links, it seems very possible to me.
I used 1.5 for over a year and edited folders with the elm -f command,
which deleted messages from both the specified folder and its links
without breaking the links.  It is a matter of using a copy rather than
a move I imagine.
-- 
Bill Silvert, Habitat Ecology Division.
Bedford Institute of Oceanography, Dartmouth, NS, Canada B2Y 4A2
	UUCP: ...!{uunet,watmath}!dalcs!biomel!bill
	Internet: biomel@cs.dal.CA	BITNET: bs%dalcs@dalac.BITNET

ccdn@levels.sait.edu.au (DAVID NEWALL) (08/01/89)

In article <924@pcsbst.UUCP>, mike@cochise writes:
> since we have local aliasas for our internal mail (handled by
> smail 2.5), mail to user xxx (from inside the Co.) is to 'x' (his
> local alias), while mail from him has his logname (xxx) in the
> From:-line.
>
> Wanting to save both in the same folder, I link ~/Mail/xxx to
> ~/Mail/x, which seems to work fine as long as I save messages
> sent to my by xxx, ie. I see them in both folders -> the link
> remains. BUT: when I send to the person (using 'M'ail), elm saves
> the message in one of the folders (namely ~/Mail/x) and destroys
> the link to the other !-(.

The closest I can come to duplicating your problem is this: I create a
folder and also a second link to that folder.  I put some mail in the
folder and then change to that folder.  If I then delete a message and
change to any other folder, the link gets destroyed.  But this is what
you would expect because a folder must be completely rewritten after
deleting a message (Rewritten = create new file, copy contents to new
file, delete old file, rename new file to old file).

Could you give me "keystroke by keystroke" instructions for duplicating
your problem?


David Newall                     Phone:  +61 8 343 3160
Unix Systems Programmer          Fax:    +61 8 349 6939
Academic Computing Service       E-mail: ccdn@levels.sait.oz.au
SA Institute of Technology       Post:   The Levels, South Australia, 5095

owend@asilomar.sun.COM (Owen DeLong SUN IR Workstation Support) (08/03/89)

In article <816@ciss.Dayton.NCR.COM> tmoore@ciss.Dayton.NCR.COM (Tom.Moore@ciss.Dayton.NCR.COM) writes:
>To recreate it:
>
>1.  Link an existing mail folder to a new name.
I suspect from your discussion that you are using a hard link.
>2.  Fire up elm.
>3.  Change folders to one of the linked folders.
>4.  Delete a message.
>5.  Quit elm and answer yes to the delete messages question.
>6.  Do an ls -i on the subject folders.  Surprise!
>
Based on the above assumption (hard link), here's what I suspect
is happening.  Elm does a selective copy of the old mail file
into a /tmp file.  Then it unlinks the old mail file, and links
the old mail file name to the /tmp file.  This means that process
of updating the mailbox (folder) will run a bit more quickly than
copying the entire file, then selectively copying it back.  If
you were using a symbolic link, chances are that the link would
be untouched, and the real file would be updated, thus keeping
both current.  This is only a guess based on the (small) amount I
know about the internal workings of mailers and UNIX.

For those of you stuck with System V, YATFBB.

Owen DeLong
Sun Microsystems
(Sun doesn't have any idea what I'm talking about, and they
probably don't want to know.)