Estudio linux-x86 can not save files edited within workbench.

5 messages Options
Embed this post
Permalink
paulg_ca

Estudio linux-x86 can not save files edited within workbench.

Reply Threaded More More options
Print post
Permalink
Greetings,

I am running into a error or maybe a bug with Eiffel v6.4, at the start of the Fall term :(

Estudio could not save files edited within the workbench. The first save works but the second fails.
 

Here is a snip from strace....

18656 lstat64("/cs/home/paulg/eiffel64/test1234.e", 0xbfffe2ac) = -1 ENOENT (No such file or directory)
18656 open("/cs/home/paulg/eiffel64/test1234.e", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 8
18656 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
18656 close(8)                          = 0

Did you notice the seg fault while trying to save the file... Anyone seen this error before ?

Installation information:
Version = EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
$ISE_EIFFEL = /cs/local/packages/Eiffel64
$ISE_LIBRARY = /cs/local/packages/Eiffel64
$ISE_PLATFORM = linux-x86

Kernel:  - 2.6.9-89.0.9.EL.CSE.smp
Linux Dist: CentOS release 4.6 (Final)
NFS mounted home directories, but problem also appears when writing to /tmp

I going to keep digging and post any updates I find!

Cheers,
Paul



rfo

RE: Estudio linux-x86 can not save files edited within workbench.

Reply Threaded More More options
Print post
Permalink
Hi Paul!

I've not seen this, but then I use an external editor most of the time.
The error indicates that there is a problem with the directory path
(despite the 'No such' code), because the file mode includes O_CREAT,
the file need not exist, but the path to it must.
Is it possible that your environment changed in some way in between
calls?  If not then the accusing finger of blame seems to point toward
class-cluster-directory name mapping.  I have trouble imagining that
that has broken, but you just never know.

     R

==================================================
Roger F. Osmond


> -------- Original Message --------
> Subject: [eiffel_software] Estudio linux-x86 can not save files edited
> within workbench.
> From: "paulg_ca" <[hidden email]>
> Date: Wed, September 16, 2009 9:25 am
> To: [hidden email]
> Greetings,
> I am running into a error or maybe a bug with Eiffel v6.4, at the start of the Fall term :(
> Estudio could not save files edited within the workbench. The first save works but the second fails.
>  
> Here is a snip from strace....
> 18656 lstat64("/cs/home/paulg/eiffel64/test1234.e", 0xbfffe2ac) = -1 ENOENT (No such file or directory)
> 18656 open("/cs/home/paulg/eiffel64/test1234.e", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 8
> 18656 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> 18656 close(8)                          = 0
> Did you notice the seg fault while trying to save the file... Anyone seen this error before ?
> Installation information:
> Version = EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> $ISE_EIFFEL = /cs/local/packages/Eiffel64
> $ISE_LIBRARY = /cs/local/packages/Eiffel64
> $ISE_PLATFORM = linux-x86
> Kernel:  - 2.6.9-89.0.9.EL.CSE.smp
> Linux Dist: CentOS release 4.6 (Final)
> NFS mounted home directories, but problem also appears when writing to /tmp
> I going to keep digging and post any updates I find!
> Cheers,
> Paul

paulg_ca

Re: Estudio linux-x86 can not save files edited within workbench.

Reply Threaded More More options
Print post
Permalink
We had to file a bug report with Eiffel, this is critical for us. We are trying to use Eiffel in one of our University courses.

Here is what we found.
 
We have tested older versions and these do not have the bug:
EiffelStudio 6 (6.4.7.6313 GPL Edition - linux-x86)
EiffelStudio 6 (6.3.7.6070 GPL Edition - linux-x86)
 
And these version have the bug, we are not sure which version/build introduced this bug.
 
EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
EiffelStudio 6 (6.4.7.9263 GPL Edition - linux-x86)
 
We have verified we are not out of disk space or over quota.

Not a fun way to start a new term, but life goes on....

strace from Eiffel 6.3 (works)

Notice how it opens application.e.swp, writes the data to the file and then renames application.e.swp to application.e. Compare that to the strace output from the orginal post where the thread just segfaults.

829   open("/cs/home/paulg/eiffel63/project4/application.e.swp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 7
829   fstat64(7, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
829   mmap2(NULL, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb1b75000
829   write(7, "indexing\n\tdescription : \"project"..., 363) = 363
829   close(7)                          = 0
829   munmap(0xb1b75000, 32768)         = 0
829   rename("/cs/home/paulg/eiffel63/project4/application.e.swp", "/cs/home/paulg/eiffel63/project4/application.e") = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   geteuid32()                       = 2381
829   getegid32()                       = 1000
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
829   geteuid32()                       = 2381
829   getegid32()                       = 1000
829   open("/cs/home/paulg/eiffel63/project4/application.e", O_RDONLY) = 7

Running on CentOS/RHEL 4.6

Cheers,
Paul

--- In [hidden email], <rfo@...> wrote:

>
> Hi Paul!
>
> I've not seen this, but then I use an external editor most of the time.
> The error indicates that there is a problem with the directory path
> (despite the 'No such' code), because the file mode includes O_CREAT,
> the file need not exist, but the path to it must.
> Is it possible that your environment changed in some way in between
> calls?  If not then the accusing finger of blame seems to point toward
> class-cluster-directory name mapping.  I have trouble imagining that
> that has broken, but you just never know.
>
>      R
>
> ==================================================
> Roger F. Osmond
>
>
> > -------- Original Message --------
> > Subject: [eiffel_software] Estudio linux-x86 can not save files edited
> > within workbench.
> > From: "paulg_ca" <paulg_ca@...>
> > Date: Wed, September 16, 2009 9:25 am
> > To: [hidden email]
> > Greetings,
> > I am running into a error or maybe a bug with Eiffel v6.4, at the start of the Fall term :(
> > Estudio could not save files edited within the workbench. The first save works but the second fails.
> >  
> > Here is a snip from strace....
> > 18656 lstat64("/cs/home/paulg/eiffel64/test1234.e", 0xbfffe2ac) = -1 ENOENT (No such file or directory)
> > 18656 open("/cs/home/paulg/eiffel64/test1234.e", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 8
> > 18656 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> > 18656 close(8)                          = 0
> > Did you notice the seg fault while trying to save the file... Anyone seen this error before ?
> > Installation information:
> > Version = EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> > $ISE_EIFFEL = /cs/local/packages/Eiffel64
> > $ISE_LIBRARY = /cs/local/packages/Eiffel64
> > $ISE_PLATFORM = linux-x86
> > Kernel:  - 2.6.9-89.0.9.EL.CSE.smp
> > Linux Dist: CentOS release 4.6 (Final)
> > NFS mounted home directories, but problem also appears when writing to /tmp
> > I going to keep digging and post any updates I find!
> > Cheers,
> > Paul
>


Emmanuel Stapf

RE: Re: Estudio linux-x86 can not save files edited within workbench.

Reply Threaded More More options
Print post
Permalink
Hi Paul,

Thanks for the details. At this stage it is unclear why you are getting the
segmentation violation. We have responded to your bug report with a request for
shadow.

Regards,
Manu

> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of paulg_ca
> Sent: Wednesday, September 16, 2009 10:06 AM
> To: [hidden email]
> Subject: [eiffel_software] Re: Estudio linux-x86 can not save files
> edited within workbench.
>
> We had to file a bug report with Eiffel, this is critical for us. We are
> trying to use Eiffel in one of our University courses.
>
> Here is what we found.
>
> We have tested older versions and these do not have the bug:
> EiffelStudio 6 (6.4.7.6313 GPL Edition - linux-x86)
> EiffelStudio 6 (6.3.7.6070 GPL Edition - linux-x86)
>
> And these version have the bug, we are not sure which version/build
> introduced this bug.
>
> EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> EiffelStudio 6 (6.4.7.9263 GPL Edition - linux-x86)
>
> We have verified we are not out of disk space or over quota.
>
> Not a fun way to start a new term, but life goes on....
>
> strace from Eiffel 6.3 (works)
>
> Notice how it opens application.e.swp, writes the data to the file and
> then renames application.e.swp to application.e. Compare that to the
> strace output from the orginal post where the thread just segfaults.
>
> 829   open("/cs/home/paulg/eiffel63/project4/application.e.swp",
> O_WRONLY|O_CREAT|O_TRUNC, 0666) = 7
> 829   fstat64(7, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
> 829   mmap2(NULL, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
> -1, 0) = 0xb1b75000
> 829   write(7, "indexing\n\tdescription : \"project"..., 363) = 363
> 829   close(7)                          = 0
> 829   munmap(0xb1b75000, 32768)         = 0
> 829   rename("/cs/home/paulg/eiffel63/project4/application.e.swp",
> "/cs/home/paulg/eiffel63/project4/application.e") = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   geteuid32()                       = 2381
> 829   getegid32()                       = 1000
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e",
> {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   geteuid32()                       = 2381
> 829   getegid32()                       = 1000
> 829   open("/cs/home/paulg/eiffel63/project4/application.e", O_RDONLY) =
> 7
>
> Running on CentOS/RHEL 4.6
>
> Cheers,
> Paul
>
> --- In [hidden email], <rfo@...> wrote:
> >
> > Hi Paul!
> >
> > I've not seen this, but then I use an external editor most of the time.
> > The error indicates that there is a problem with the directory path
> > (despite the 'No such' code), because the file mode includes O_CREAT,
> > the file need not exist, but the path to it must.
> > Is it possible that your environment changed in some way in between
> > calls?  If not then the accusing finger of blame seems to point toward
> > class-cluster-directory name mapping.  I have trouble imagining that
> > that has broken, but you just never know.
> >
> >      R
> >
> > ==================================================
> > Roger F. Osmond
> >
> >
> > > -------- Original Message --------
> > > Subject: [eiffel_software] Estudio linux-x86 can not save files
> edited
> > > within workbench.
> > > From: "paulg_ca" <paulg_ca@...>
> > > Date: Wed, September 16, 2009 9:25 am
> > > To: [hidden email]
> > > Greetings,
> > > I am running into a error or maybe a bug with Eiffel v6.4, at the
> start of the Fall term :(
> > > Estudio could not save files edited within the workbench. The first
> save works but the second fails.
> > >
> > > Here is a snip from strace....
> > > 18656 lstat64("/cs/home/paulg/eiffel64/test1234.e", 0xbfffe2ac) = -1
> ENOENT (No such file or directory)
> > > 18656 open("/cs/home/paulg/eiffel64/test1234.e",
> O_WRONLY|O_CREAT|O_TRUNC, 0666) = 8
> > > 18656 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> > > 18656 close(8)                          = 0
> > > Did you notice the seg fault while trying to save the file... Anyone
> seen this error before ?
> > > Installation information:
> > > Version = EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> > > $ISE_EIFFEL = /cs/local/packages/Eiffel64
> > > $ISE_LIBRARY = /cs/local/packages/Eiffel64
> > > $ISE_PLATFORM = linux-x86
> > > Kernel:  - 2.6.9-89.0.9.EL.CSE.smp
> > > Linux Dist: CentOS release 4.6 (Final)
> > > NFS mounted home directories, but problem also appears when writing
> to /tmp
> > > I going to keep digging and post any updates I find!
> > > Cheers,
> > > Paul
> >
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>

------------------------------------------------------------------------  
Eiffel Software
805-685-1006
http://www.eiffel.com       
Customer support: http://support.eiffel.com       
User group: http://groups.eiffel.com/join       
------------------------------------------------------------------------  
rfo

RE: Re: Estudio linux-x86 can not save files edited within workbench.

Reply Threaded More More options
Print post
Permalink
In reply to this post by paulg_ca
Hi Paul!

It seems there was a change alright (nice sleuthing).  It will be
interesting to see what they find.

The temp+rename is a time-honored pattern of course and is nice because
rename does not fiddle with the file system per se, only the directory
structure, leading some folks to claim that it is an atomic operation
(not quite, but close enough in most cases).  It's very important that
the two paths (before and after rename) are in the same file system of
course, else it's going to fail (and a 'real' move is needed).
Judging from your description, I guess this is easily reproducible so
we're not talking about threads or processes contending, or anything too
exotic.
It is interesting that lstat is being used instead of stat, as lstat
will behave differently for symlinks, returning the stat struct for the
link itself, rather than the file to which the link refers.  I'm not too
crazy about that.  I'm also not too crazy about the fact that the failed
lstat is ignored and the open attempted despite the stat failure.
Hmmmm.  As I said, it will be interesting to see what they come up with.

     R

==================================================
Roger F. Osmond


> -------- Original Message --------
> Subject: [eiffel_software] Re: Estudio linux-x86 can not save files
> edited within workbench.
> From: "paulg_ca" <[hidden email]>
> Date: Wed, September 16, 2009 1:05 pm
> To: [hidden email]
> We had to file a bug report with Eiffel, this is critical for us. We are trying to use Eiffel in one of our University courses.
> Here is what we found.
>  
> We have tested older versions and these do not have the bug:
> EiffelStudio 6 (6.4.7.6313 GPL Edition - linux-x86)
> EiffelStudio 6 (6.3.7.6070 GPL Edition - linux-x86)
>  
> And these version have the bug, we are not sure which version/build introduced this bug.
>  
> EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> EiffelStudio 6 (6.4.7.9263 GPL Edition - linux-x86)
>  
> We have verified we are not out of disk space or over quota.
> Not a fun way to start a new term, but life goes on....
> strace from Eiffel 6.3 (works)
> Notice how it opens application.e.swp, writes the data to the file and then renames application.e.swp to application.e. Compare that to the strace output from the orginal post where the thread just segfaults.
> 829   open("/cs/home/paulg/eiffel63/project4/application.e.swp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 7
> 829   fstat64(7, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
> 829   mmap2(NULL, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb1b75000
> 829   write(7, "indexing\n\tdescription : \"project"..., 363) = 363
> 829   close(7)                          = 0
> 829   munmap(0xb1b75000, 32768)         = 0
> 829   rename("/cs/home/paulg/eiffel63/project4/application.e.swp", "/cs/home/paulg/eiffel63/project4/application.e") = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   geteuid32()                       = 2381
> 829   getegid32()                       = 1000
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   lstat64("/cs/home/paulg/eiffel63/project4/application.e", {st_mode=S_IFREG|0600, st_size=363, ...}) = 0
> 829   geteuid32()                       = 2381
> 829   getegid32()                       = 1000
> 829   open("/cs/home/paulg/eiffel63/project4/application.e", O_RDONLY) = 7
> Running on CentOS/RHEL 4.6
> Cheers,
> Paul
> --- In [hidden email], <rfo@...> wrote:
> >
> > Hi Paul!
> >
> > I've not seen this, but then I use an external editor most of the time.
> > The error indicates that there is a problem with the directory path
> > (despite the 'No such' code), because the file mode includes O_CREAT,
> > the file need not exist, but the path to it must.
> > Is it possible that your environment changed in some way in between
> > calls?  If not then the accusing finger of blame seems to point toward
> > class-cluster-directory name mapping.  I have trouble imagining that
> > that has broken, but you just never know.
> >
> >      R
> >
> > ==================================================
> > Roger F. Osmond
> >
> >
> > > -------- Original Message --------
> > > Subject: [eiffel_software] Estudio linux-x86 can not save files edited
> > > within workbench.
> > > From: "paulg_ca" <paulg_ca@...>
> > > Date: Wed, September 16, 2009 9:25 am
> > > To: [hidden email]
> > > Greetings,
> > > I am running into a error or maybe a bug with Eiffel v6.4, at the start of the Fall term :(
> > > Estudio could not save files edited within the workbench. The first save works but the second fails.
> > >  
> > > Here is a snip from strace....
> > > 18656 lstat64("/cs/home/paulg/eiffel64/test1234.e", 0xbfffe2ac) = -1 ENOENT (No such file or directory)
> > > 18656 open("/cs/home/paulg/eiffel64/test1234.e", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 8
> > > 18656 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> > > 18656 close(8)                          = 0
> > > Did you notice the seg fault while trying to save the file... Anyone seen this error before ?
> > > Installation information:
> > > Version = EiffelStudio 6 (6.4.7.9451 GPL Edition - linux-x86)
> > > $ISE_EIFFEL = /cs/local/packages/Eiffel64
> > > $ISE_LIBRARY = /cs/local/packages/Eiffel64
> > > $ISE_PLATFORM = linux-x86
> > > Kernel:  - 2.6.9-89.0.9.EL.CSE.smp
> > > Linux Dist: CentOS release 4.6 (Final)
> > > NFS mounted home directories, but problem also appears when writing to /tmp
> > > I going to keep digging and post any updates I find!
> > > Cheers,
> > > Paul
> >