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