On 02/29/12 16:25, Michal Kubecek wrote: > Hello, > > current HEAD fails to build on my system because database file > yachts.lnk is open for reading and write lock on it is requested with > fcntl() which is not allowed. > > This patch: > > ------------------------------------------------------------------------------ > diff -up src/jrd/os/posix/unix.cpp.orig-rdlock src/jrd/os/posix/unix.cpp > --- src/jrd/os/posix/unix.cpp.orig-rdlock 2012-02-28 13:58:07.000000000 > +0100 > +++ src/jrd/os/posix/unix.cpp 2012-02-29 13:00:11.484581400 +0100 > @@ -645,7 +645,7 @@ jrd_file* PIO_open(Database* dbb, > } > > const bool shareMode = dbb->dbb_config->getSharedDatabase(); > - if (!lockDatabaseFile(desc, shareMode)) > + if (!lockDatabaseFile(desc, shareMode || readOnly)) > { > ERR_post(Arg::Gds(isc_io_error) << Arg::Str("lock") << > Arg::Str(file_name) << > Arg::Gds(isc_io_open_err) << Arg::Unix(errno)); > ------------------------------------------------------------------------------ > > fixes the build on my system but I'm not sure it covers all scenarios > where a database file is open for reading. Alex, can you check it, > please?
It's almost same with what I wanted to do. But this does not work if you build as root. I will commit full fix today. ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel