On 24-06-2013 04:22, Alex Peshkoff wrote:
> On 06/23/13 22:18, Adriano dos Santos Fernandes wrote:
>> Hi!
>>
>> This error is inconsistent in 2.5 and 3.0!
>>
>> 2.5 accepts a DECLARE for a denied module, but rejects it if a procedure
>> references the function. This happens because DFW does not load the just
>> declared function, but it happens when it is referenced. This is at
>> least strange.
>
> Legacy behavior - exists at least since ib6.
>
>>
>> In 3.0 DFW loads it and rejects it right on the declaration. But it
>> happens then that restore may not work (I guess it may not work in 2.5
>> too
>
> Due to this code (2.5) it's just a warning:
>
> if (tdbb->getAttachment()->att_flags & ATT_gbak_attachment)
> {
> warning(Arg::Warning(isc_funnotdef) << Arg::Str(name) <<
> Arg::Warning(isc_modnotfound));
> }
> else {
> csb->csb_blr_reader.seekBackward(count);
> error(csb, Arg::Gds(isc_funnotdef) << Arg::Str(name) <<
> Arg::Gds(isc_modnotfound));
> }
>
>> ). Currently this error in restore makes metadata wrong and causes
>> somewhat unrelated crashes with procedures not completely loaded.
>>
>>
>
> How do you want to fix this? For me 2.5 is OK - may be with the warning
> when declaring missing function in addittion to what we have now.
>
No, I was not talking about missing function, but about UdfAccess
parameter restriction.
Imagine user restoring multi-gigabyte database and forget to adjust
server param. It will just throw an error at restore end, even in 2.5.
Adriano
|