Re: [Firebird-devel] Firebird 3.0.3 build on Fedora rawhide icu 60.2
On Wed, Feb 21, 2018 at 11:46:57AM +0100, Philippe Makowski wrote: > > firebird-3.0.3.32900 doesn't build on Fedora rawhide with icu 60.2 > > Any idea on how to fix it ? > > error: 'char16_t' does not name a type; did you mean 'charset'? > error: 'UChar' does not name a type; did you mean 'UChar32'? I have seen similar errors when building Firebird 2.5 with ICU 59 as it requires (at least) C+11. However, Firebird 3.0 should use C++11 by default, IIRC. > https://paste.fedoraproject.org/paste/o4g95lyp3QPMWO80NfwM3A No -std=c++11 here, though. Did you override build options? Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird 3 and ICU
On Fri, Jan 19, 2018 at 12:14:45PM +0300, Roman Simakov wrote: > > It seems that we have a problem with installation of Firebird 3 on > OpenSuse. I get "Could not find acceptable ICU library". > > I took a look into sources. FB tries to search ICU modules in some > magic manner combining major and minor versions. But it looks in Suse > icu libraries has additional prefix like ".1" or "_1". I tries to make > symlink and server could find .so! However it could not find functions > because of the same problem. They also use such suffixes. > > Anybody can fix a magic of library and functions looking up or at > least explain me an idea of naming? The reason for SUSE ICU package using different soname is that upstream ICU makes incompatible API changes without updating major version number (and, therefore, soname) from time to time. That's why SUSE packages add minor version to soname. The 3.0 package in Tumbleweed (openSUSE:Factory) is patched to handle this but it's rather an ugly hack that I didn't dare to submit to (Firebird) upstream. Another problem is that this hack is not very future proof as it just adds a list of versions to existing array. Neither is the original Firebird code but while it's going to "run out of numbers" with ICU 70, my hack already did when ICU 60 hit Factory. Dimstar band-aided this by adding 60 to the array but I'll have to add few more numbers so that we are good for some more time (at least until 70 when upstream code needs updating too). Unfortunately there is no chance I would find time to resolve this properly in near future. For the record, the test OBS repositories home:mkubecek:firebird40 and home:mkubecek:firebird30 are not patched yet but those are currently few months behind upstream git anyway. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Weird date/time literals
On Thu, Jan 18, 2018 at 12:10:19PM +0100, Dimitry Sibiryakov wrote: > 18.01.2018 11:57, Dmitry Yemanov wrote: > >IMO, no sane person would rely on that intentionally. > > Why? This is the only method to get procedure compilation time, AFAIR. While I hate abusing it in general, in this case I can't help referencing https://xkcd.com/1172/ :-) Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ISQL open unassigned issues
On Tue, Jan 16, 2018 at 12:46:32PM -0500, William L. Thomson Jr. wrote: > You all are likely aware already. If not then you are now :) > > A user brought this up recently in #firebird IRC channel @freenode.net. > They were having some issues with history for ISQL command. They were > working on a solution, but no success thus far. I suggested they file > an issue. Which they did. > http://tracker.firebirdsql.org/browse/CORE-5711 While you say "were having issues" and type is set to "Bug" (even with priority Major), it definitely feels like a pure feature request to me. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Meltdown and Spectre
> The performance impact of the recent fixes hinge, mainly, on whether > the host OS/kernel has PCID support. First of all, the CPU must support PCID. > PCID support was only added to linux kernel 4.14, released November > 2017. ... and only to recent CPUs. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fwd: [pkg-firebird-general] Bug#879972: firebird3.0: FTBFS with icu59, simple workaround/patch attached
On Wed, Nov 01, 2017 at 12:17:41PM +0200, marius adrian popa wrote: > Thanks for the input > > here is also the libreoffice approach for new icu > > https://github.com/LibreOffice/core/commit/ > fabad007c60958f2ff87e8f636ff6a798ad1f963#diff-5cdae6d283d6fdef5700f98b098748cc > > I guess the new icu will work on new distros with firebird 3.0 Yes, FB 3.0 is already built with -std=c++11 so that it doesn't have problem with new ICU. > 2.5 is already removed in debian testing / next ubuntu versions That's why I think this isn't much problem for distribution packages; only latest versions of distribution have ICU >= 59.1 and those are likely to have switched to FB3 already. It's a problem for people who build Firebird 2.5 for new distributions themselves, though. The workaround defining UCHAR_TYPE is probably the best way to go at the moment. I just wanted to point out that more problems with ICU can be expected in the future. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fwd: [pkg-firebird-general] Bug#879972: firebird3.0: FTBFS with icu59, simple workaround/patch attached
On Mon, Oct 30, 2017 at 05:04:25PM +0200, marius adrian popa wrote: > Firebird 3.0 icu59 ubuntu related patch > > -- Forwarded message -- > From: Adam Conrad <adcon...@debian.org> > Date: Fri, Oct 27, 2017 at 10:03 PM > Subject: [pkg-firebird-general] Bug#879972: firebird3.0: FTBFS with icu59, > simple workaround/patch attached > To: Debian Bug Tracking System <sub...@bugs.debian.org> > > > Package: firebird3.0 > Version: 3.0.2.32703.ds4-11 > Severity: important > Tags: patch > User: ubuntu-de...@lists.ubuntu.com > Usertags: origin-ubuntu bionic ubuntu-patch > > > > In Ubuntu, the attached patch was applied to achieve the following: > > * Define UCHAR_TYPE=uint16_t to avoid C++11 and fix FTBFS with icu59. > > So, here's what's happening. In icu59, UChar is defined as char16_t if > you're compiling a C++ project (ie: ifdef __cplusplus), but char16_t is > a C++11 type. One could argue this is an ICU bug for forcing rdeps to > conform to a newer C++ standard (and one could even win that argument, > I imagine), but I figured working around it in firebird was the path of > least resistance. > > My first attempt was to change the firebird build from std=gnu++98 to > std=gnu++11. Don't do that. I mean, try if you want, but it does not > end well. > > This patch just tells icu to use the same type for UChar that it used to > and it seems to do the trick here. So, enjoy. This will probably work around the immediate build problem but as I pointed out some time ago in http://firebird.1100200.n4.nabble.com/heads-up-ICU-59-1-requires-C-11-td4645984.html the real problem is that starting with version 59.1, ICU officially requires C++11 so that there may be other, more subtle, issues with it and even if not, more can be expected to come with newer versions. On the other hand, making 2.5 code fully conform to C++11 might bring other problems so addressing ICU compatibility problems one by one is probably the only viable option (except just claiming that users of distributions that new should use 3.0). Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Understanding OLTP results
On Thu, Sep 14, 2017 at 10:46:12AM +0200, Paul Reeves wrote: > > Your figures show that FB3 and Kernel 4.1.12 was the slowest > combination. > > Although it is interesting to see that FB 4 Alpha 1 is performing > better than FB 3.0.3. > > Anyway, if I understand correctly the issue is with the kernels, not > firebird. Have you tried other kernels from other distros ? ( 4.1 is > getting old, now - the latest is 4.12, I think. ) It's a bit more complicated. Latest release is 4.13 since few days ago but most distributions - and in particular those targeted for server use - have something older. E.g. RHEL7 has 3.10, SLES12 3.12 (GA and SP1) or 4.4 (SP2 and SP3). And there are even SLES11 SP4 (3.0) or RHEL6 (2.6.32). On the other hand, version itself may not be sufficient as those kernels often have many backports that can affect performance quite a lot. What would be interesting would be using e.g. perf to identify where does the difference between kernel versions come from (assuming kernel is indeed the only different component between two tests). Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] sse3 host x64 linux
On Mon, Jul 10, 2017 at 03:04:12PM +0300, marius adrian popa wrote: > > ./autogen.sh --prefix=/opt/firebird3.x > > /home/mariuz/Work/firebird/firebird/gen/Release/firebird/bin/gpre_current -m > -z > -n /home/mariuz/Work/firebird/firebird/src/yvalve/blob.epp /home/mariuz/Work/ > firebird/firebird/temp/Release/yvalve/blob.cpp > gpre version LI-V3.0.3.32749 Firebird 3.0 > *** Error in `/home/mariuz/Work/firebird/firebird/gen/Release/firebird/bin/ > gpre_current': free(): invalid size: 0x7eff6c49c2a0 *** Please try if adding "-fno-delete-null-pointer-checks" to CXXFLAGS helps. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] gpre error when trying to build
On Sat, Jun 17, 2017 at 02:35:46PM -0400, U-BLASTER-6000\mtdew wrote: > > I am trying to build from source firebird 2.5. I am intersted in using > gpre with cobol. > > I use ./configure -with-gpre-cobol -with-system-icu > > I get past configure but then run into these errors when trying to use > the command make. > > Please let me know if there is anything I can do to get past these > errors. Hopefully it is something silly I am doing. > > thx. very much- jim > > ../src/common/classes/alloc.cpp:2127:7: error: declaration of ‘void* operator > new(size_t) throw (std::bad_alloc)’ has a different exception specifier > void* operator new(size_t s) THROW_BAD_ALLOC >^~~~ There are some issues when building Firebird with compiler in C++14 mode which is default for gcc >= 6. For details see e.g. https://tracker.firebirdsql.org/browse/CORE-5099 For Firebird 2.5, the problem can be worked around by adding "-std=gnu++98 -fno-lifetime-dse" to CXXFLAGS which enforces C++98 mode even on newer gcc and disables certain optimizations. However, if your ICU is version 59.1 (or newer), you may be in trouble as that requires C++11: https://sourceforge.net/p/firebird/mailman/message/35878832/ Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] heads up: ICU 59.1 requires C++11
Hello, last week I noticed my Firebird 2.5 packages started to fail building for openSUSE Factory. A bit surprisingly this is not caused by the switch to gcc7 but by an upgrade of ICU to 59.1. According to their release notes, ICU 59.1 requires C++11 to build. An immediate symptom is an error about unknown type uchar16_t. This would be probably easy to work around but there may be more subtle issues. It's only a problem for Firebird 2.5 as 3.0 and newer use C++11 mode by default anyway. For 2.5, though, most gcc6 compatibility issues were worked around by enforcing C++98 mode (-std=gnu++98). It's probably nothing really serious as distributions which are new enough to provide ICU 59.1 most likely already have Firebird 3.0 which is fine; I just wanted to give a heads up to save others time if they run into this issue. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Build FB 3 on openSUSE 42.2 ICU problem
On Tue, Mar 07, 2017 at 01:54:38PM +0100, Martin Schreiber wrote: > On 03/07/2017 11:35 AM, Michal Kubecek wrote: > > > > FYI: unless you have other reasons to do your build, there are ready to > > use FB 3.0 packages in OBS projects server:database (copy of what is in > > Tumbleweed) and home:mkubecek:firebird30 (recent git snapshot): > > > > > > http://download.opensuse.org/repositories/server:/database/openSUSE_Leap_42.2/ > > > > http://download.opensuse.org/repositories/home:/mkubecek:/firebird30/openSUSE_Leap_42.2/ > > > Thanks, I need debuginfo and debugsource for libfbclient.so.3.0.1 which > I could not find in the packages. What is the correct package for > libfbclient debuginfo? It should be libfbclient2-debuginfo which seems to be available in both repositories. As for -debugsource, there is only firebird-debugsource as debugsource packages are named after the source packages, not after binary ones (like debuginfo). But it should provide sources for everything built from firebird source RPM, including libfbclient2. Michal Kubecek -- Announcing the Oxford Dictionaries API! The API offers world-renowned dictionary content that is easy and intuitive to access. Sign up for an account today to start using our lexical data to power your apps and projects. Get started today and enter our developer competition. http://sdm.link/oxford Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Build FB 3 on openSUSE 42.2 ICU problem
On Tue, Mar 07, 2017 at 11:03:33AM +0100, Martin Schreiber wrote: > I try to compile git B3_0_Release branch on openSUSE Leap 42.2. It fails > with > " > /home/mse/packs/standard/git/firebird/source_3_0/gen/Release/firebird/bin/isql > -q -i /home/mse/packs/standard/git/firebird/source_3_0/src/dbs/metadata.sql > can't format message 17:0 -- message file > /home/mse/packs/standard/git/firebird/source_3_0/gen/Release/firebird/firebird.msg > not found > Could not find acceptable ICU library You would need the patch unicode-handle-the-ICU-version-hack-from-SuSE.patch from https://build.opensuse.org/package/show/home:mkubecek:firebird30/firebird It's ugly but I didn't get to replacing it with something nicer yet. FYI: unless you have other reasons to do your build, there are ready to use FB 3.0 packages in OBS projects server:database (copy of what is in Tumbleweed) and home:mkubecek:firebird30 (recent git snapshot): http://download.opensuse.org/repositories/server:/database/openSUSE_Leap_42.2/ http://download.opensuse.org/repositories/home:/mkubecek:/firebird30/openSUSE_Leap_42.2/ Michal Kubecek -- Announcing the Oxford Dictionaries API! The API offers world-renowned dictionary content that is easy and intuitive to access. Sign up for an account today to start using our lexical data to power your apps and projects. Get started today and enter our developer competition. http://sdm.link/oxford Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] windows test build - least painful way?
Hello, as my Hackweek project, I played with struct rem_port and tried to turn it into class hierarchy with virtual functions. The plan is to use this to implement listening on multiple sockets (CORE-5219) and possibly also AF_UNIX socket support but I didn't get that far yet. Current state of the cleanup is at https://github.com/mkubecek/firebird/commits/mk/4.0/remote-cleanup The problem is the series also touches windows specific code (including WNET and XNET) and I'm pretty sure there are some typos and omissions which I would like to fix before submitting a pull request. The problem is the only Windows system I have is a VM with Windows XP and even the oldest version of MSVC Express I was able to find requires at least Windows 7 SP1. I believe I may still have an installation DVD of Windows 7 somewhere but before I try to find it, I wanted to ask if there is some other way. I noticed there is a configuration for travis-ci but AFAICS that only does linux test builds; is there something similar for windows test builds? Thanks for any advice, Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] RFC: Timeouts
On Wed, Feb 22, 2017 at 02:42:16PM +0200, Vlad Khorsun wrote: > 16.02.2017 12:59, Vlad Khorsun wrote: > > > >The code is committed at separate branch: > > > > https://github.com/FirebirdSQL/firebird/tree/timeouts > > > > ... > > > > If there will be no objections i plan to merge it into master next week. > >Done, testers are welcome ;) Breaks build on openSUSE Factory for me. The patch below seems to fix it (didn't check too thouroughly so far). Michal Kubecek --8< diff --git a/builds/posix/firebird.vers b/builds/posix/firebird.vers index 8ae5b91b8660..4e09817f754e 100644 --- a/builds/posix/firebird.vers +++ b/builds/posix/firebird.vers @@ -225,6 +225,7 @@ isc_dsql_prepare_m isc_dsql_release isc_dsql_set_cursor_name isc_dsql_sql_info +fb_dsql_set_timeout # ESQL functions --8< -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] -std=c++11 added to CXXFLAGS in 3.0 on linux
Hello, commit 52d9a05a0f3d ("Backport from master: Optimized hash function for lock manager and hash join") in B3_0_Release branch adds "-std=c++11" to CXXFLAGS on Linux. Is this change intentional? Is it something we want? It doesn't seem to be necessary, as far as I can say, the build succeeds without it, both with gcc 4.3 and gcc6. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] linux build failure - security.sql (bisected)
On Tue, Jan 17, 2017 at 11:30:53AM +0100, Dimitry Sibiryakov wrote: > 17.01.2017 9:47, Michal Kubecek wrote: > > The offending line seems to be > > > > CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET BINARY; > > > > I bisected it to commit > > > > 7b9b408658e1 Implementation of CORE-5064 (#73) > > > > I didn't look too deep but maybe newly introduced type "binary" collides > > with "character set binary" used here > >Yes, as "binary" now is reserved word. Try to change the line to >"CREATE DOMAIN PLG$PASSWD AS VARBINARY(64)". This does the trick, the build succeeds then. However, if we really have a character set named "binary", it's probably unusable now (I tried to put the name into single quotes but the parser doesn't accept that). Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] linux build failure - security.sql (bisected)
Hello, linux build of master branch currently fails on command .../gen/Release/firebird/bin/isql -i .../src/dbs/security.sql security.tmp with the following error: can't format message 17:0 -- message file /usr/lib64/firebird/lib/firebird.msg not found Dynamic SQL Error -SQL error code = -104 -Token unknown - line 1, column 55 -BINARY can't format message 17:119 -- message file /usr/lib64/firebird/lib/firebird.msg not found can't format message 17:0 -- message file /usr/lib64/firebird/lib/firebird.msg not found unsuccessful metadata update -CREATE TABLE PLG$USERS failed The offending line seems to be CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET BINARY; I bisected it to commit 7b9b408658e1 Implementation of CORE-5064 (#73) I didn't look too deep but maybe newly introduced type "binary" collides with "character set binary" used here. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird backward incompatibility Firebird 3.0 reading 2.5 format
On Fri, Nov 25, 2016 at 06:38:39PM +0200, marius adrian popa wrote: > Thread is for migration of the already created odb files with 2.5 databases > inside but also about the forward and backward compatibilty of the backup > archive > > https://lists.freedesktop.org/archives/libreoffice/2016-November/075953.html To make migration easier for openSUSE/SLE users, I created package compat-firebird25 with modified paths so that it doesn't collide with standard FB3 packages and can be installed alongside them. It installs only a minimal set of files needed to access local database files in embedded mode and back them up to be restored by FB3 gbak. It also provides a simple script to migrate a database either via a pipe (gbak25 | gbak30) or using an intermediate file. The idea of using a backup file rather than platform and version dependent database file in LibreOffice sounds like the right solution, as far as I can say. Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird 3.0.1 still don't build under Fedora 24 with gcc6
On Fri, Sep 30, 2016 at 11:04:44AM +0200, Philippe Makowski wrote: > Hi, > > I tried to build latest stable 3.0.1 under Fedora 24 without success. > Fedora 24 use gcc 6.2.1 > > > log is here : > https://copr-be.cloud.fedoraproject.org/results/makowski/firebird/fedora-24-x86_64/00459581-firebird/build.log.gz > > I tried with these 2 OpenSuse patches > https://build.opensuse.org/package/view_file/home:mkubecek:firebird30/firebird/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch?expand=1 > and > https://build.opensuse.org/package/view_file/home:mkubecek:firebird30/firebird/Provide-sized-global-delete-operators-when-compiled-.patch?expand=1 > > spec and patches are here : > http://copr-dist-git.fedorainfracloud.org/cgit/makowski/firebird/firebird.git/tree/?id=767d4a0057b13c1e706a003b96f477580a5013c3 Please try adding -fno-delete-null-pointer-checks to CXXFLAGS. To be on the safe side, you might also add -fno-strict-aliasing to both CFLAGS and CXXFLAGS but it's probably not critical. Michal Kubecek -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] C++11 features
On Wed, Aug 31, 2016 at 10:06:50AM +0200, Thomas Steinmaurer wrote: > > 31.08.2016 05:14, Adriano dos Santos Fernandes wrote: > >> > >> In the code I'm writing, I had good opportunities to use some features > >> that the compiler flags we're using disallowed, like lambda and default > >> arguments for template parameter. > >> > >> Also we have the ubiquitous ugly iterator types in for's with would > >> benefit from "auto". > >> > >> It seems we already had some discussion of usage of some of these > >> features, but builds are not adjusted. > >> > >> The obsolete language standard we're using is so boring and so outdated. > >> We need to move on. > > > > Basically, I agree. IIRC, a showstopper is MSVC10 support which I'd > > prefer to keep for a while. But if others don't consider it really > > important, I'm not going to stop the progress ;-) > > Do we know that the new language features are stable enough? > > I know, you are talking about C++ ... but e.g. we had serious troubles > with new fency language stuff in JDK8 like lambdas, streams (under high > concurrency) with the JIT compiler etc., thus new is not always better > (especially under load) although more convenient for the developer. This might vary a lot from feature to feature. There may be also difference between the language itself and standard library. For example, gcc 4.8 (which is the standard compiler in SLES 12, including upcoming SP2) supports C++11 as a language dialect but it has completely broken std::regex implementation. Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [FB-Tracker] Created: (CORE-5265) fb_config --embedlibs returns "-lfbembed", but there is no libfbembed.so anymore
On Tue, Jun 07, 2016 at 03:02:31PM +0300, marius adrian popa wrote: > On Tue, Jun 7, 2016 at 2:55 PM, Damyan Ivanov (JIRA) <trac...@firebirdsql.org> > > wrote: > > > > fb_config --embedlibs returns "-lfbembed", but there is no libfbembed.so > > anymore > > Question fb_config --embedlibs should list both fbclient Engine12 ? IMHO not. AFAIK libEngine12.so is loaded via dlopen() and applications using embedded connections do not need to be directly linked against it. Michal Kubecek -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] PathName and operator +=
On Fri, May 06, 2016 at 05:34:10PM +0200, Dimitry Sibiryakov wrote: > 06.05.2016 17:27, Adriano dos Santos Fernandes wrote: > > You can have a PathName += string > > Ok, must this operation ensure dir separator between the parts? Not necessarily, I would say, e.g. you may want to add an extension to a file path. > Should be here an operator or function that can be used to append a > relative path to a root directory path, for example? Such function would be useful, IMHO. But I would be careful about an operator as that tends to lead to confusing results if second operand is implicitely promoted from e.g. a string literal. Also, it would be very confusing if "+" and "+=" did different things. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, May 04, 2016 at 04:01:10PM +0200, Stefan Heymann wrote: > > Ok, that did the trick. I can now also confirm that connecting to a > > Firebird 2.5 server is quick when IPv6 is inactive on localhost. > > Now that the technical reasons for this one-second delay are > clarified: is there something that can/will be done to improve the > situation? Do I need to open a ticket? As discussed, the problem is in the configuration of the system in question so that's where a proper solution. I have a patch allowing "inet4" and "inet6" protocols in URL-like connection strings to restrict host lookup to IPv4 or IPv6 addresses as a workaround on systems where the issue cannot be fixed properly. The patch is at https://github.com/mkubecek/firebird/commits/mk/4.0/inet46 I would like to run few more tests and then I'll create a pull request (tomorrow, hopefully). I believe it can be also cherry picked into B3_0_Release branch if there are no objections. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, Apr 27, 2016 at 03:42:16PM +0200, Dimitry Sibiryakov wrote: > 27.04.2016 15:33, Michal Kubecek wrote: > > After a one second timeout, apparently. And that's exactly where the > > problem is. > > And the most reliable solution for the problem is to try other > addresses without waiting for timeout error from the first one. All > the rest will fail under some circumstances as I already wrote. I already explained why this _workaround_ is wrong - and what the _solution_ is. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, Apr 27, 2016 at 03:24:28PM +0200, Dimitry Sibiryakov wrote: > 27.04.2016 15:08, Michal Kubecek wrote: > > The problem is in local system setup; first it tells the client > > where to connect and then it hides the fact that the connection didn't > > succeed. That's plain wrong. > > Use only first structure returned by getaddrinfo() and you'll get your > error. After a one second timeout, apparently. And that's exactly where the problem is. If connect() failed within the roundtrip to the hop unable to forward the syn packet on, you wouldn't observe any problem. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, Apr 27, 2016 at 09:57:36AM -0300, Adriano dos Santos Fernandes wrote: > > > Firebird is not probably (I think) the unique application in the world > connecting via tcp (ipv4 or ipv6) to things. Or is it? Definitely not. > Is the problem happening with other applications and how they are > solving it or not? I'm not familiar with the situation on Windows but few years ago when linux distributions started to have IPv6 enabled by default and popular websites started to provide records (and serve IPv6 requests), this type of problem was observed quite often. To my knowledge, the solution mostly was to either disable IPv6 or adjust /etc/gai.conf to prefer IPv4 addresses on hosts without IPv6 connectivity, sometimes also adjusting firewalls so that outgoing IPv6 fail properly rather than being silently dropped. Some client applications also provide means to enforce IPv4 (e.g. '-4' command line option or a configuration directive). Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, Apr 27, 2016 at 02:54:11PM +0200, Dimitry Sibiryakov wrote: > 27.04.2016 11:27, Michal Kubecek wrote: > > Please stop pretending the problem is way worse than it actually is. > > It is enough that the problem exists and can be solved without tuning > of global OS settings. "solve" -> "worked around" Firebird code is not the problem, it does exactly what it is supposed to. The problem is in local system setup; first it tells the client where to connect and then it hides the fact that the connection didn't succeed. That's plain wrong. We can - and we IMHO should - provide a workaround but we shouldn't pretend there is something wrong in using the address system library told us to use. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Wed, Apr 27, 2016 at 11:03:33AM +0200, Dimitry Sibiryakov wrote: > 27.04.2016 0:11, Leyne, Sean wrote: > > 2- Slowness only occurs when using "localhost" with v3 client*and* v2.5 > > server -- a very unusual situation (why would you have new client installed > > on same host as old server?) > > No, this problem occur on any host with multiple IP addresses when > Firebird is not reachable on the first in list. ...and either the host is set up not to generate a TCP reset packet or ICMP destination unreachable message or something eats it between the endpoints. Please stop pretending the problem is way worse than it actually is. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Tue, Apr 26, 2016 at 09:56:30PM +0200, Michal Kubecek wrote: > On Tue, Apr 26, 2016 at 07:02:48PM +0200, Dimitry Sibiryakov wrote: > > 26.04.2016 18:58, Michal Kubecek wrote: > > > Disabling it unconditionally is not a good idea. Perhaps it could be > > > controlled via firebird.conf but I would still prefer the connection > > > string as more flexible. > > > >Extract IPv6 support from remote to a separate plugin. > > That doesn't make much sense to me. Actually one of my long term plans > is to refactor struct rem_port into a hierarchy of classes. But I don't > see much benefit in providing support for different protocols in the > form of plugins. Forgot one important point: vast majority of the code is common, only a very small part handles the differences between IPv4 and IPv6. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Tue, Apr 26, 2016 at 07:02:48PM +0200, Dimitry Sibiryakov wrote: > 26.04.2016 18:58, Michal Kubecek wrote: > > Disabling it unconditionally is not a good idea. Perhaps it could be > > controlled via firebird.conf but I would still prefer the connection > > string as more flexible. > >Extract IPv6 support from remote to a separate plugin. That doesn't make much sense to me. Actually one of my long term plans is to refactor struct rem_port into a hierarchy of classes. But I don't see much benefit in providing support for different protocols in the form of plugins. While I'm not opposed to the possibility to confine the client to IPv4 (or IPv6), I definitely don't like the idea of making that a default. Seriously, it's 2016, not 1996. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Tue, Apr 26, 2016 at 05:57:19PM +0200, Dimitry Sibiryakov wrote: > 26.04.2016 17:48, Stefan Heymann wrote: > > we need the URL type db string > > solution described by Michael so only IPv4 gets tried by the client. > > This solution requires to change every connection string in every > application worked with Firebird which is often hard-coded. Not necessarily. The example with "localhost" name is rather artificial. I'm pretty sure client using linked libfbclient accessing a 2.5 server running on the same machine is not a common production scenario. If it's a different machine, there are other options, e.g. - do not give the name an record - configure it in a way where the IPv6 connection fails normally > Disabling IPv6 in client is more realistic solution for now. Disabling it unconditionally is not a good idea. Perhaps it could be controlled via firebird.conf but I would still prefer the connection string as more flexible. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Tue, Apr 26, 2016 at 01:16:17PM +0200, Dimitry Sibiryakov wrote: > 26.04.2016 13:12, Michal Kubecek wrote: > > Are you aware of other client applications doing this for TCP based > > protocols? > >Any torrent client. That's completely different situation. With bittorrent, you want to access all targets, not one of them (unless I guessed wrong what connection you meant). Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Mon, Apr 25, 2016 at 05:46:24PM +0200, Dimitry Sibiryakov wrote: > 25.04.2016 17:42, Michal Kubecek wrote: > > A 2.5 server, however, does only listen to IPv4 connections and for > > some reason, client has to wait for timeout of the connection to :: > > which is tried first. > > Reason is simple: addresses for a host are tried one-by-one. No, that's not the reason. If everything works the way it's supposed to, the connection fails within one roundtrip and client doesn't have to wait for a full second. For :: address, there is even less reason for having to wait for a timeout. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Mon, Apr 25, 2016 at 05:07:13PM +0200, Stefan Heymann wrote: > >>Try to set option IPv6V6Only to true in firebird.conf and see if > >>it makes any difference. > > > This directive affects only listening sockets (i.e. a server) and > > would actually do the exact opposite: make the server listening on > > (default) address :: accept only IPv6 connections (to any address). > > To accept only IPv4 connections, you would rather want > > "RemoteBindAddress 0.0.0.0" (or e.g. 127.0.0.1). > > We're now talking about Fb3 servers, right? Wenn I connect to a Fb3 > server (using the Fb3 client and "localhost" as the host name), the > connection is quick. > > The problem is when I use the Fb3 client to connect to a Fb2.5 > database. Then there is this one second delay. Yes, that's why I explained that the IPv6V6Only directive cannot help you as it does only affect server so that it can't change the behaviour of a 3.0 client (and a 2.5 server wouldn't recognize it at all). > Connection time using the new Fb3 fbclient.dll: > - 3.0 database using "localhost" - quick > - 3.0 database using "127.0.0.1" - quick > - 2.5 database using "localhost" - slow > - 2.5 database using "127.0.0.1" - quick This agrees with the theory: "localhost" resolves to both :: and 127.0.0.1 and according to your system's rules, :: is preferred. With 3.0 database listening to any IPv6 or IPv4 connection, both are quick. A 2.5 server, however, does only listen to IPv4 connections and for some reason, client has to wait for timeout of the connection to :: which is tried first. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Sat, Apr 23, 2016 at 12:13:26PM +0200, Dimitry Sibiryakov wrote: > 23.04.2016 12:01, Stefan Heymann wrote: > >> It seems that your problem is due to slow host name to IP address > >> >resolution (i.e. DNS), not with Firebird functionality. > > But my 2.5 fbclient does not show this delay. So I don't assume there > > is a problem with IP resolution. > >Try to set option IPv6V6Only to true in firebird.conf and see if it >makes any difference. This directive affects only listening sockets (i.e. a server) and would actually do the exact opposite: make the server listening on (default) address :: accept only IPv6 connections (to any address). To accept only IPv4 connections, you would rather want "RemoteBindAddress 0.0.0.0" (or e.g. 127.0.0.1). Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Fri, Apr 22, 2016 at 05:53:06PM +0300, Alex Peshkoff wrote: > On 04/22/2016 04:59 PM, Stefan Heymann wrote: > > I just tested the new 3.0.0 Release (Build 32483) fbclient.dll against > > a Firebird 2.5.5 database. It takes ages (about 1 second) to attach to > > the database. Connection to a Firebird 3.0 database is quick as ever. > > > > Are there plans to speed this up? It's quite annoying. > > Stefan, I've made a test. It's dev-build therefore it's not too fast but > look here: > > # time (echo 'exit;' | ./isql -z -user sysdba -pas masterkey > localhost:employee) > ISQL Version: LI-V2.5.6.26980 Firebird 2.5 > Server version: > LI-V2.5.6.26980 Firebird 2.5 > LI-V2.5.6.26980 Firebird 2.5/tcp (localhost)/P12 > LI-V2.5.6.26980 Firebird 2.5/tcp (localhost)/P12 > exit; > real0m0.183s > > # time (echo 'exit;' | ./isql -z -user sysdba -pas masterkey > localhost:employee) > ISQL Version: LI-V3.0.0.32486-dev Firebird 3.0 > Server version: > LI-V2.5.6.26980 Firebird 2.5 > LI-V2.5.6.26980 Firebird 2.5/tcp (localhost)/P12 > LI-V3.0.0.32486-dev Firebird 3.0/tcp (localhost)/P12 > exit; > real0m0.161s > > I do not notice 3.0 client to work slower. I suspect the difference may be that on your system connect() to ::1 fails (almost) immediately while on Stefan's it has to wait for timeout for some reason as if e.g. the SYN packet was dropped silently (actually, on Linux, connect() would fail immediately even then, but Windows networking stack may behave differently). Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Performance of fbclient.dll of recent snapshots
On Fri, Apr 22, 2016 at 03:59:52PM +0200, Stefan Heymann wrote: > > However, the new fbclient (3.0.0.31529) connecting to old Firebird > > servers (2.5 and earlier) is also taking 1 second (compared to +/- 25-30 > > milliseconds with Firebird 3 beta 1 fbclient and 15 milliseconds with > > Firebird 2.5.3 fbclient), so we do have a problem. > > I just tested the new 3.0.0 Release (Build 32483) fbclient.dll against > a Firebird 2.5.5 database. It takes ages (about 1 second) to attach to > the database. Connection to a Firebird 3.0 database is quick as ever. Do you see the same delay when identifying the server by IP address (rather than by name)? > Are there plans to speed this up? It's quite annoying. If this is the problem discussed before (waiting for the IPv6 connection attempt to time out), it should be possible to change the preference via gai.conf (RFC 3484). We might also consider extending the new connection string format inet://... to variants inet4://... and inet6://... which would enforce AF_INET or AF_INET6. Michal Kubecek -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] FB4 Database Strings
On Wed, Apr 06, 2016 at 07:47:00PM +0300, Dmitry Yemanov wrote: > 06.04.2016 19:00, Jim Starkey wrote: > > > I suggest that FB4 get completely out of the business of passing > > database file names over the API and go strictly with something like a > > URL that identifies the location and name of a database, letting the > > server configuration map the name into a file name, et al. > > I'm wondering how many users we'll lose because of this change. People > never like more requirements to do the same job. This is especially > important for embedded users, I believe 95% of them never used aliases > and would hate to setup some configuration just to access the database. > It will also complicate installation/distribution of embedded solutions. I agree that for embedded users, identifying a database by file path makes very good sense. On the other hand, it IMHO makes much less sense to expose filesystem structure to remote clients (security guys might use stronger words). Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Icu error with Firebird 3.0 patch
On Fri, Apr 01, 2016 at 12:48:00PM +0200, Lionel Elie Mamane wrote: > On Thu, Mar 31, 2016 at 10:07:41PM +0300, marius adrian popa wrote: > > I started refactoring firebird 3.0 patch for libreoffice (updated to rc2) > > > https://gist.github.com/mariuz/bcde7f783b657b2465e5 > > > and there are few issues with icu linking > > > https://gist.github.com/mariuz/68588eabb4f40c8aa008a601eade91e2#gistcomment-1739036 > > I notice that the patch removes --with-system-icu from the firebird > configure options, is that the right thing to do? This option has been removed in master branch by commit de453fcfd3de ("Check for presence of ICU development package in configure, related cleanup") in November 2010. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] src_bundle.sh
On Mon, Mar 28, 2016 at 04:58:56PM +0100, Wols Lists wrote: > On 28/03/16 15:59, Michal Kubecek wrote: > >> But still clone of Firebird repository is 10 times bigger than its > >> > sources. > > That's one way to look at it. Another way is to say it's about 0.18 EUR > > of disk space in case of a SSD and 0.02 EUR in case of classical > > magnetic disk. > > Another way to look at it is it's a bloody expensive download for > somebody paying by the MB. Again: how often do you run "git clone" and how often other commands that do not use a single bit of your Internet connection (git log, git diff, git blame, git commit, git checkout, git bisect, ...) but their Subversion counterparts (if exist) do communicate with the server each time? I'm pretty sure, in the long run, git will be much cheaper. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] src_bundle.sh
On Mon, Mar 28, 2016 at 10:49:53AM -0400, Jim Starkey wrote: > On 3/28/2016 10:25 AM, Dimitry Sibiryakov wrote: > > But still clone of Firebird repository is 10 times bigger than its > > sources. > > That's an interesting question. I don't know the answer, but somebody > should research it -- maybe there's a fix. > > My guess is that however history was uploaded to git short circuited > git's various compression and delta schemes. Git, for example, tracks > files by hash, not date, so files unchanged from commit to commit and > branch to branch aren't duplicated. Other systems keep full copies of > everything. Maybe in the long path from CVS this didn't happen. Few days ago I noticed that some tags, e.g. R2_5_4 or R2_5_5 are not only on B2_5_Release branch but do actually have much less common history with it than I would expect (e.g. "git log B2_5_Release..R2_5_5" gives me 9260 commits). This is probably an artefact of the import from SVN but it might mean we effectively keep multiple copies of some parts of the branch. BtW., "git gc --aggressive" reduced the size of my local repository from 462 MB to 155 MB. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] src_bundle.sh
On Mon, Mar 28, 2016 at 04:25:15PM +0200, Dimitry Sibiryakov wrote: > 28.03.2016 16:16, Jim Starkey wrote: > > nothing else was more suitable. > > But still clone of Firebird repository is 10 times bigger than its > sources. That's one way to look at it. Another way is to say it's about 0.18 EUR of disk space in case of a SSD and 0.02 EUR in case of classical magnetic disk. It's always a bit of shock for developers used to centralized VCS (CVS, Subversion, ...) when they see how long "git clone" takes and how much data does it download. But that's the point of distributed VCS: you have a complete history stored locally. What you get is fast "git log" (compare to "svn log"), "git blame" etc. The question you should ask is: how many times do I run "git clone" and how many times will I need "git log" or "git blame"? I believe those 492 MB of disk space are worth the comfort it brings. BtW., the directory with my checked out trunk from Subversion has 636 MB for some reason. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [firebird] increment build number (773c7bf)
On Sat, Mar 26, 2016 at 12:43:11PM +0300, alex wrote: > > 25.03.2016 22:48, Adriano dos Santos Fernandes пишет: > > Em 25/03/2016 16:24, Dmitry Yemanov escreveu: > >> This gives us a buildno counted in days, not in commits (as now). > >> > > In practive it's not different. > > > > Doesn't the script is running per day like was in svn? > > > > Right, that means the snapshot build has a "perfect" buildno, but the > > people who download zip does not. > > > > With the solution above, we can make snapshot builds to checkout tree or > > 00:00 hour of the given date, so it can have a perfect buildno that we > > can convert to date as well. > > One question - if there are no commits for some days (typical for stable > branches) will buildno anyway be incremented every day? If yes IMHO this > is not good. Both Adriano's and my proposal calculate the build number from the (commit) date of the latest commit, not current date. So if there is a commit on Friday and next is on Monday, you get the same build number for the Saturday, Sunday and Monday snapshot (assuming snapshots are taken on midnight or shortly after) but it is raised by 3 once the Monday commit appears. In other words, there is no need to build a new daily snapshot if there are no commits since the last one. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [firebird] increment build number (773c7bf)
On Fri, Mar 25, 2016 at 10:24:57PM +0300, Dmitry Yemanov wrote: > 25.03.2016 22:19, Michal Kubecek wrote: > > >timestamp='$Format:%ct$' > >if [ "${timestamp:0:1}" = '$' ]; then > >ts=`git log -1 --pretty='%ct'` > >fi > >build_num=$[timestamp / 86400 - 16811] > > This gives us a buildno counted in days, not in commits (as now). Yes, but I'm not sure if it's really a problem. One thing I had to learn when I started to work on projects using git was that with nonlinear git history, the idea of a linear version counter can be approximated to some extent but it can't really work in general. And that the only reliable identifier of a point in a git tree is the commit id. We might combine the date based build number that would be backward compatible and would nicely identify the daily snapshots with (abbreviated) commit id of the actual source version which would give precise identification for - daily snapshots - snapshots downloadad from Github web interface - snapshots generated locally with "git archive" - builds directly from (local) git repository This woudln't, of course, work for builds from commits outside the main branch but at least it would be easy to see this is the case. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [firebird] increment build number (773c7bf)
On Fri, Mar 25, 2016 at 09:58:19PM +0300, Dmitry Yemanov wrote: > 25.03.2016 21:35, Adriano dos Santos Fernandes wrote: > > > >> Can we call git from the filter and expect the repository directory > >> being the current one? What about multiple shell commands? > > > > I think no. But now we have a build number for each date, so with the > > date we can simulate the same per-day buildno we have now. > > Sorry for being absolutely dumb, but HOW? :-) I'm obviously missing the > point. You can set the export-subst attribute for a script which would use e.g. ... timestamp='$Format:%ct$' if [ "${timestamp:0:1}" = '$' ]; then ts=`git log -1 --pretty='%ct'` fi build_num=$[timestamp / 86400 - 16811] ... plus some fallback to handle the case "git log" fails, i.e. we have neither source exported using "git archive" nor a git repository. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [firebird] increment build number (773c7bf)
On Fri, Mar 25, 2016 at 02:25:02PM -0300, Adriano dos Santos Fernandes wrote: > > Looks like I found a good workaround for github "download zip" (or git > archive). > > Look at my test repository to see the simple solution which we can work on: > > https://github.com/asfernandes/test1 > > Used this info to build it: > > https://git-scm.com/book/uz/v2/Customizing-Git-Git-Attributes Looks great. Good to know that Github either uses "git archive" or at least honors export attributes. Another nice effect is that it's also going to work for local "git archive" which is probably what most people use to export contents from git repository. Funny thing that few days ago I set export-ignore attribute locally for extern/SfIO but still didn't realize now that export-subst was created exactly for this purpose. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Atomics
On Wed, Mar 23, 2016 at 10:59:20AM -0400, Jim Starkey wrote: > > Defining your own macro layer gives you cheap portability and a zero > overhead implementation. That's one side of it. The other is that for occasional contributors or distribution support guys, it brings a lot of confusion. Like when you find out that ULONG is in fact not unsigned long as one would expect from the name but rather what standard calls uint32_t). Or when you learn that instead of a standard library function you are supposed to use this compatibility wrapper. Regular contributors have learned these and got used to it; for newcomers, it can be tough at times. The portability you mention is nice but it's paid for by readability and maintainability of the code. Most of the stuff is historical and it would be unwise to rush into weeding it out. But we should think twice before adding more. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Git
On Sat, Mar 19, 2016 at 10:34:12PM -0400, James Starkey wrote: > > > On Saturday, March 19, 2016, Wols Lists <antli...@youngman.org.uk> wrote: > > On 16/03/16 21:03, Michal Kubecek wrote: > > An experienced developer might have 10 or 20 topics on the go - > each in their own separate branches. That way work doesn't > cross-contaminate - you don't want to accidentally upload a > half-baked development because you had to upload an unrelated > emergency bug-fix ... :-) > > A developer who does that, experienced or novice, is going to lose > his or her mind. Been thre, done that, went nuts. One can only > juggle so much complexity. First, I did _not_ write the quote above. But I agree with it anyway. Second, what would be a level of complexity threatening to make one lose his mind would be the exact opposite: trying to handle multiple pieces of work in progress without keeping them in separate branches. You also shouldn't forget that having 10-20 live branches doesn't mean they all have to be actively worked on at the moment. Some may be fixes waiting to be confirmed by reporter, some may be waiting for review and some are long term work in progress, currently on back burner. Or you can try two or three different fixes for the same issue and keep them all available until the best is selected. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Git
On Sun, Mar 20, 2016 at 10:21:05AM +0100, Dimitry Sibiryakov wrote: > 19.03.2016 23:38, Wols Lists wrote: > > But for the OP, read these books, and learn to use branches. This is > > the classic Git workflow - every little task should have its own git > > branch on your developer machine. Switching between branches is > > almost cost-free, and then when you're ready to submit your work you > > rebase to the latest master, squash your branch into a single commit > > (if it's not too big), and upload it for review and committing. > > It is fine for independent pieces of work when pull requests are > accepted quickly. But suppose that you finished one piece, pushed it, > created a pull request and start a new work that require previous > changes to work. When you finished this work too, push it and create a > new pull request before first one was even looked at, you'll end up > with mess. As I said before, this is completely independent of VCS choice. If you have project where pull request are often ignored for months, such project has a problem and no VCS can possibly help. However, you can always do the second piece of work on top of the first and replace the original request by a new one containing both features. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Git
On Wed, Mar 16, 2016 at 10:11:17PM +0100, Dimitry Sibiryakov wrote: > 16.03.2016 22:03, Michal Kubecek wrote: > > One of the advantages of getting used to use these "topic" branches > > rather than adding commits directly to a local copy of "upstream" branch > > (e.g. B3_0_Release here) is that it allows you to work on several > > different bugs or features and simply switch between the branches as > > needed. The workflow could look like > > It is fine, but what will happen to gigabytes of object files in > temp dir after switching from one branch to another? Full rebuild > every time? Not necessarily. Switching between two topic branches forked from e.g. B3_0_Release should leave most of the source tree intact. However, to be able to build within the local git repository and still use it for devel work, we will need to create a .gitignore file covering all files and directories generated by the build (which is a certainly a good idea). For branches forked from very different upstream branches, you can either use multiple clones or (with recent git versions, IIRC since 2.5 or 2.6) multiple worktrees sharing the same objects (git worktree ...). It's a matter of scale, I would say. Working with linux kernel most of the time, I kind of fail to see Firebird repository as big or taking too long to build from scratch. :-) > > With Github workflow, one usually pushes into his fork of the original > > repository and then creates a pull request using the web interface. > >How many years can live a pull request without resolution on GitHub? That depends on the project and its maintainers, of course. But this is a problem completely orthogonal to the choice of VCS or VCS hosting service. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Git
On Thu, Mar 17, 2016 at 01:55:08PM +0100, Jiří Činčura wrote: > > git push :branchname > > Which is changed for couple of year already. > `git push --delete ` More precisely, the latter was added as a nicer alias for the former. As git-push(1) says: --delete All listed refs are deleted from the remote repository. This is the same as prefixing all refs with a colon. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird support for "newer" compilers & SDKs / especially on Windows & MacOS X
On Tue, Mar 15, 2016 at 04:37:06PM +0100, Lionel Elie Mamane wrote: > > Then, we read the thread "Compiler for official Firebird 4 release on > Windows" on this ML. Which says that not only Firebird 3, bit Firebird > 4 binaries on http://firebirdsql.org/ will be compiled with > MSVC2013. Some people within the LibreOffice developer community have > understood that as "Firebird 4 will not support newer MSVC"; Well, that would be really pesimistic interpretation. I seriously doubt core developers who work on Windows would like to confine themselves to MSVC 2013 for the whole FB4 lifetime. As I said before, what will be the official binaries compiled with and what compilers will be supported are two very different questions. It seems at least some of the issues you ran into are the same problems we encountered with gcc6, see the initial comment of CORE-5099 for the list. I believe all except 2 and 3 can be safely fixed in all branches from 2.5 up and I think they should. As for issue 2 (exception specifier for operator new), this could be fixed as well once we make sure MSVC is OK with suggested solution. The most complicated is issue 3, dead store elimination (see my comment from February 26). I'm not sure how much of the code relies on zeroing object storage in operator new. It may not be feasible (and safe) to fix all of them in 2.5 and maybe not even in 3.0 (which is already at RC2). Good news is it can be worked around with "-flifetime-dse=1" or stronger "-fno-lifetime-dse". The tricky part is that gcc < 5 does not recognize this option but that can be resolved in configure script. I'm going to propose patches for the easy issues later this week, let's see what the consensus will be. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] RFC: File names with non-ASCII non-ANSI letters
On Tue, Mar 15, 2016 at 01:49:20PM +0100, Dimitry Sibiryakov wrote: > >Does POSIX requires any changes for this issue ? > >AFAIK - no, fopen() handles utf-8 in file names out of box. I would rather say posix filesystems are encoding agnostic. In general, the file name is just a sequence of bytes not containing zero bytes ('\0') and slashes ('/') and it's up to you to decide what encoding you want to use, as long as it's not something like UTF-16 or UCS-2 (which many windows users mistake for UTF-16). As most linux distributions have been using UTF-8 for everything for quite some time, file names ended up being in UTF-8 as well. But it's just kind of an "unwritten law", not a standard. Michal Kubecek -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] GitHub
On Wed, Mar 02, 2016 at 10:45:35AM -0300, Adriano dos Santos Fernandes wrote: > Em 02/03/2016 09:31, Michal Kubecek escreveu: > > On Wed, Mar 02, 2016 at 02:18:27PM +0300, Dmitry Yemanov wrote: > >> > >> Firebird Project will be moving its repositories to GitHub soon. > > > > Is the fact that the git repository hasn't been updated since Sunday > > (and therefore has no B3_0_Release branch) related to this migration > > or is it a different problem? > > > > The fact is more this: :D > > http://stackoverflow.com/questions/35726537/track-a-branch-in-a-bare-git-svn That was my first hypothesis. :-) > I didn't care too much because it's going to be replaced... Makes sense. Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] GitHub
On Wed, Mar 02, 2016 at 02:18:27PM +0300, Dmitry Yemanov wrote: > > Firebird Project will be moving its repositories to GitHub soon. Is the fact that the git repository hasn't been updated since Sunday (and therefore has no B3_0_Release branch) related to this migration or is it a different problem? Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Compiler for official Firebird 4 release on Windows
On Mon, Feb 29, 2016 at 10:38:16AM -0500, Jim Starkey wrote: > I'm not at all sure that having "official" Firebird compilers is that > good of an idea. > > The basic principle is that the code should work on a wide variety of > compilers. You (and not only you) are mixing two very different questions: (1) what compiler should be used to build the official binaries provided for download on project web (2) what compilers should be the code compatible with The discussion started with question (1) (and that only for one platform) but some people started mixing in (2). We can build our official windows binaries with whatever latest and greatest MSVC version we choose and still have code compatible with older versions. If we decided to use c++11 or even c++14 specific language (or standard library) features, that would be a completely different situation, of course. But that's not what this discussion is about. > My experience has always been that if an unfamiliar compiler > produces errors, warning, or unexpected results, the probably has almost > always been with the code, not the compiler, usually a latent bug > prepared to expose itself later. FB3 code already does not compile with gcc version present in some actively maintained linux distributions. But it's compiler's fault so while it means some extra work for me, I fully agree with the decision not to work around this problem in the upstream codebase and let distribution packagers add the workaround where needed. > With an official compiler, the > temptation will always be to write off an unexpected results from an > "unofficial" compiler as an aberration. Perhaps I'm too optimistic but I believe the need to build the codebase with different toolchains on several different platforms does prevent this risk. After all, there were already examples of problems revealed by new versions of gcc or clang. > And no, it is perfectly reasonable for the client and the server to run > on different platforms, which makes the question whether the server and > client should use the same compiler meaningless. A clarification is needed here, obviously. I wasn't talking about client and server talking to each other via TCP. What I was replying to was the idea of building the official client library and server binaries intended to be used together on one system with two different compilers. Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Compiler for official Firebird 4 release on Windows
On Sun, Feb 28, 2016 at 09:25:30PM -0300, Carlos H. Cantu wrote: > >> However, I seriously question the need to support Windows XP and > >> Windows Server 2003 for Firebird 4. > > LS> I completely agree! > LS> There comes a time when some OSs/installs need to be recognized as > *legacy*. > LS> Systems based on those platforms need to recognize that they > LS> can't be running the latest/greatest software. In the FB case, v3 > LS> will still run on/be supported for those platforms for several more years. > LS> Sean > > > Afaiu, there is a problem with some specific version of MSVC that > generate code that doesn't work on WinXP/2003 so, you guys are now > talking about dropping support to such Windows versions, so this > compiler could be used. > > Question: Does this problem would also affect the compiled client > library? Or do you guys also think nobody using Win XP/2003 will needs > to connect to Firebird? First, the discussion is about a version which, extrapolating from previous release dates, is not likely to be released before 2020. Second, IIUC, you should still be able to connect to a 4.0 server with 3.0 client library. That said, using a different compiler for server and client sounds like asking for trouble to me. (On the other hand, the most recent Windows IDE I have experience with is Borland C++ Builder 6 so you don't have to take me too seriously.) Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird 3 packages on distro
On Thu, Feb 25, 2016 at 10:33:46AM +0100, Philippe Makowski wrote: > Hi, > > I'm working on the Firebird 3 package for Centos 7 > > to have some coherence between distros , I took a look at : > https://build.opensuse.org/package/show/home:mkubecek:firebird30/firebird > > and > > https://anonscm.debian.org/cgit/pkg-firebird/3.0.git/ > > Can we coordinate our work ? > > I like the way Debian split the package, Michal, what about doing the > same in Suse ? (I will certainly do the same in Mageia, Fedora and Centos) I'm not familiar with Debian packaging, is there an easier way to see how are files divided into packages than going through https://anonscm.debian.org/cgit/pkg-firebird/3.0.git/tree/debian/make_packages.sh ? So far I noticed libib_util separated into its own package, this definitely looks reasonable. Michal -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird-2.5.5 build fail on Fedora rawhide
On Fri, Feb 05, 2016 at 12:36:30PM +0100, Philippe Makowski wrote: > > can you check these build log ? > > http://paste.fedoraproject.org/318912/14546719/ > > and > > http://koji.fedoraproject.org/koji/getfile?taskID=12819241=build.log=-4000 Is it gcc6? If so, see http://tracker.firebirdsql.org/browse/CORE-5099 Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Failure to build with GCC 6: cannot convert x to y
On Fri, Jan 22, 2016 at 11:51:57AM +, Damyan Ivanov wrote: > > The fix in r62830 > http://sourceforge.net/p/firebird/code/62830/tree//firebird/branches/B2_5_Release/src/gpre/sqe.cpp?diff=50cc621834309d0a4876d914:62829 > > is not enough. Later on there are these errors: > > g++ -Wdate-time -D_FORTIFY_SOURCE=2 -DBOOT_BUILD -I../src/include/gen > -I../src/include -I../src/vulcan -DNAMESPACE=Vulcan -DNDEBUG -ggdb > -DFB_SEND_FLAGS=M > SG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -O3 > -fno-omit-frame-pointer -pthread -g -O2 -fstack-protector-strong -Wformat > -Werror=for > mat-security -fno-rtti -c ../src/common/classes/alloc.cpp -o > ../temp/boot/common/classes/alloc.o > ../src/common/classes/alloc.cpp: In function 'void* operator new(size_t)': > ../src/common/classes/alloc.cpp:2107:7: error: declaration of 'void* operator > new(size_t) throw (std::bad_alloc)' has a different exception specifier > void* operator new(size_t s) THROW_BAD_ALLOC >^~~~ Created CORE-5099 to summarize my findings and to track further progress. Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ODP: Re: fb3 connections limit
On Thu, Jan 21, 2016 at 01:20:02PM -0500, Jim Starkey wrote: > On 1/21/2016 12:41 PM, Dimitry Sibiryakov wrote: > > 21.01.2016 18:20, Leyne, Sean wrote: > >> Operationally, your app will die/fail which you try to exceed the > >> Windows FD_Size value -- it is a OS level limit. > > Nope, it is truly set at compile time and only application-defined > > structures are used by OS. Problem is not a size of structure > > itself, but very ineffective methods to find out which socket is > > signaled after select() has returned. I wonder if someone tried to > > use bit-scanning instructions of modern x86 processors to solve the > > problem... > > Microsoft is now supporting the Linux poll() as WSAPoll(). Much more > intelligent data structures and is smart enough to wake up when the > remote end of a socket is closed. I don't know what platforms do or > don't support poll(), so select() would have to be conditional, but > poll() beats the pants off select(). For really large sets of sockets, epoll() would be even better. IIRC the FB3 code uses poll() if available, select() otherwise. On Windows, select() is used always. Anyway, IIRC we only use poll() or select() for connections belonging to one client so that technical limitations of that syscall should not matter for the client connections limit. Michal Kubecek -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] march switch in posix build for x86 architecture
On Tue, Dec 29, 2015 at 10:13:26PM -0500, James Starkey wrote: > On Tuesday, December 29, 2015, Michal Kubecek <m...@mk-sys.cz> wrote: > > > On Tue, Dec 29, 2015 at 07:43:37PM -0500, James Starkey wrote: > > > Could you explain to us what optimization a are possible on 686 that > > > are not on the 386? > > >From the top of my head, 386 doesn't even have any atomic cmpxchg or > > xadd instruction which rather complicates any lock or semaphore > > implementation. 586 and 686 bring more new instruction but I would have > > to do some research to tell you which exactly (I got rid of my last > > 32-bit system some 6-7 years ago). > > Nope, interlocked compare and exchange were part of the 386 > instruction set. No, they are not. It's one of the very few new instructions introduced by 486 (together with xadd, bswap and L1 cache control instructions). See e.g. https://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_80486 http://zsmith.co/intel_c.html#cmpxchg http://www.cs.dartmouth.edu/~mckeeman/cs48/mxcom/doc/x86.html https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d55c5a93db2d Pentium then added the 64-bit version cmpxchg8b. Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] march switch in posix build for x86 architecture
On Tue, Dec 29, 2015 at 10:04:52PM -0200, Carlos H. Cantu wrote: > > Let's try to see the case from another angle: > > On Windows, Firebird 3.0 uses VC 2010 runtime. From MS site, the > minimum requirements of this runtime are: > > Windows XP SP3 (SP3 was released in 2008) > Computer with 900 MHz or faster processor > 128 MB RAM > > In 2008, there was still new Celerons, Athlons, Pentiums, etc. being > released: > http://www.cpu-world.com/Releases/Desktop_CPU_releases_(2008).html As far as I can see, all processors on that page are actually 64-bit so not really relevant for this discussion. If you wanted a CPU unable to run code compiled with -march=686, you would have to dig much deeper into history. IIRC first PentiumPro appeared in something like 1995 or 1996. > So, personally speaking, I would not install Firebird 3 in a Pentium, > but probably there are such environments still being used in > "micro-business", like very small shop, bar, etc. specially in "third > world" countries (don't ask me if they will upgrade to FB 3). If they want to run FB3 there, they could still build their own binaries with -march=386; no need to limit the instruction set for everyone else. > Probably this scenario is even more common if you look at Linux > instead of Windows, since it was always more capable of running in > limited/cheap hardware. In general, yes. But vast majority of Linux distributions have their binaries built with at least 586 instruction set today and 386 support has been even dropped from mainline Linux kernel in version 3.8 (November 2012). Of course, there are still many installations with older systems but the combination of old kernel, old distribution and latest Firebird is not going to be too frequent, IMHO. > Anyway, I think the real question is: how much performance increase > this would bring, in real world environment? Do you have this number? > If you tell me +25%, I would vote to drop i386 support :) IMHO even more important question is: does it really matter what options are the upstream binaries built with? In Linux world, most people are either using packages provided by their distribution or contributed for that distribution by a volunteer; in both cases, these would be built with the same or similar options as the rest of the distribution. Out of those who don't, many build their own binaries instead and use whatever options they need or prefer. Even the 32-bit Intel architecture as such is on steady decline for quite a few years (in Linux world, that is; Windows are about 5 years behind in the x86_64 adoption). So I believe the number of people who care what instruction set are upstream 32-bit Linux binaries built for is rather low; and the number of those who are going to run these binaries on a 686-incompatible CPU is going to be even lower. (I'm only talking about Linux here but AFAIK there are no official binaries for other posix architectures.) Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] march switch in posix build for x86 architecture
On Tue, Dec 29, 2015 at 07:43:37PM -0500, James Starkey wrote: > Could you explain to us what optimization a are possible on 686 that > are not on the 386? >From the top of my head, 386 doesn't even have any atomic cmpxchg or xadd instruction which rather complicates any lock or semaphore implementation. 586 and 686 bring more new instruction but I would have to do some research to tell you which exactly (I got rid of my last 32-bit system some 6-7 years ago). Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ExternalFileAccess in v.2.5.4
On Wed, Oct 07, 2015 at 09:29:12PM +1300, Helen Borrie wrote: > > Does anyone have a 2.5.4 on Linux nearby, to test this: > > ExternalFileAccess = Restrict /whatever/externalfiles > ... Works for me (2.5.4 with few selected post-2.5.4 patches), directive was ExternalFileAccess = Restrict /srv/fb-ext When the path is changed to one different from what ExternalFileAccess says, first insert fails with Access to external file "/tmp/log_2.txt" is denied by server administrator as expected. Michal Kubecek -- Full-scale, agent-less Infrastructure Monitoring from a single dashboard Integrate with 40+ ManageEngine ITSM Solutions for complete visibility Physical-Virtual-Cloud Infrastructure monitoring from one console Real user monitoring with APM Insights and performance trend reports Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] firebird.msg
On Wed, Sep 16, 2015 at 07:34:12AM -0400, James Starkey wrote: > On Wednesday, September 16, 2015, Paul Reeveswrote: > On Wednesday 16 September 2015 11:35:02 Dmitry Yemanov wrote: > > 16.09.2015 12:04, Paul Reeves пишет: > > > I just noticed the size of firebird.msg in Fb 3 trunk - it seems to be > > > around 550 Mb. In Fb 2.5 it is around 150 Mb and in the previous beta > > > releases of Fb 3 it is also around 150Mb. > > > > You surely meant KB, not MB ;-) > > But hey, it was just an error of a single order of magnitude :-) > > Just as well that I'm not a futures trader. > > > Uh, try three orders of magnitude. Even better that you're not a > government economist. If we are nitpicking, it's actually rather around two orders than three as he wrote "Mb", not "MB". :-) Michal Kubeček -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Crypto Performance
On Tue, Sep 15, 2015 at 11:22:22AM -0400, Jim Starkey wrote: > 1. As Sean pointed out, the AES instructions are common on Intel > processors. Not so for AMD, however, which only supports AES in > their high end server chips. Definitely not true. Both my recent AMD CPU's (FX-8150 and FX-4350) support AES-NI. Neither of them is a "high end server chip". From what I found around the web, even recent APU's have the support. Michal Kubeček -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Firebird database on virtual file system
On Mon, Aug 31, 2015 at 07:49:34PM +0300, Геннадий Забула wrote: > I want to use firebird database file that itself embedded to an image > of a filesystem. Let's assume that I already have a parser for images. > I don't get it about extraction tables to file system and SQLite. I'm not a big fan of implementing features like this into applications. If you can mount the image using a loop device (or something similar) or e.g. a FUSE driver, any application in your system can access files on it. Implementing it in each application separately would only mean duplicating the work and introducing specific bugs and problems into each application. Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Events in Firebird 3 client library
On Sat, Apr 04, 2015 at 06:39:06PM +0200, Mark Rotteveel wrote: What is the current status of events in the Firebird 3 client library? Are there known problems? While testing the IPv6 implementation, I also tested events (as there were some changes to aux connection handling). I repeated the test about a week ago while testing the cleanup of SockAddr.h. Neither time I saw any problem but my test was really trivial: a simple C program watching two events and isql session triggering them using a stored procedure. I'm not sure if I also tested events with FB 2.5 on one side and FB 3.0 on the other. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Build Firebird on Mac OSX Yosemite with CMake
On Mon, Mar 30, 2015 at 10:33:16AM +0300, Alex Peshkoff wrote: On 03/29/15 21:56, Egor Pugin wrote: I ran fbserver from Xcode and the standard socket() function cannot create socket. remote/inet.cpp:3060 fd = ::socket(domain, type | O_CLOEXEC, protocol); (The execution does not go into the next if statement. It seems errno has other value than specified in the condition.) Without the 'O_CLOEXEC' flag the server starts well. fd = ::socket(domain, type, protocol); O_CLOEXEC was added in FB3 in order to better support fork() in user code. According to my socket(2), it should be SOCK_CLOEXEC rather than O_CLOEXEC (but these constants seem to be equal on most architectures). Michal -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Build Firebird on Mac OSX Yosemite with CMake
On Mon, Mar 30, 2015 at 11:37:42AM +0300, Egor Pugin wrote: On 30 March 2015 at 11:26, Michal Kubecek m...@mk-sys.cz wrote: According to my socket(2), it should be SOCK_CLOEXEC rather than O_CLOEXEC (but these constants seem to be equal on most architectures). I built 64-bit version of Firebird (OS X 10.10, AppleClang 6.0.0, Xcode 6.2). The symbol O_CLOEXEC is present, but as you see it has negative effect on socket() call. As I said, it should be SOCK_CLOEXEC, not O_CLOEXEC. But even then it might be possible that the symbol is defined but the flag is not really supported by kernel. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Time to update our headers.
On Fri, Mar 13, 2015 at 03:09:04PM -0400, Jim Starkey wrote: I can't see any reason to muck around with licenses at all. MPL 2.0 claim to fame is that it's compatible with GPL, but at the moment approximately 100% of Firebird is already incompatible with GPL -- and very little of it can be changed -- what is the point? Please be careful about the word compatible when talking about GPL. Unfortunately it's one of the words (together with free) that FSF is abusing by completely twisting their usual meaning. In FSF-speak, GPL-compatible means, roughly speaking, code we can copy into a GPL licensed project. I guess I don't have to explain such relation is far from symmetric. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commits visible in our main page.
On Tue, Mar 10, 2015 at 11:36:37AM +0200, marius adrian popa wrote: This one is the official one under Firebird organization umbrella https://github.com/FirebirdSQL Thanks for the info, I'll relink my local clone. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commits visible in our main page.
On Tue, Mar 10, 2015 at 11:57:49AM +0100, Dimitry Sibiryakov wrote: 10.03.2015 10:36, marius adrian popa wrote: My hope is that in the future to move all the repositories to github/git BTW, is it possible with GIT to have a single local copy of a repository but several working directories for different branches? Or I have to have several copies of repository on my HDD to work with, say, FB 2.5 and 3.0 at the same time? Depending on what exactly you want to achieve, you have few different options: - multiple cloned repositories; this is probably the easiest option to handle but not very space efficient one; if disk space is not an issue, I would probably prefer this (for example, I have now 10 different checked out copies of linux kernel tree) - if you want to save space (and network traffic for pulls), you have some options to share objects between cloned repositories; the one you would be probably most interested in would be git clone old_copy --reference remote_url new_copy - there is also --separate-git-dir option allowing to separate work directory from the .git directory with objects; but I have no experience with that However, there is seldom need for multiple working directories. I have them for linux kernel tree but the reason is mostly only switching between branches taking too long to be comfortable; in firebird git repository, switching between 3.0 and 2.5 branches takes about half second so that I can easily live with just one checked out clone. The thing is, with git, local branches are cheap and work with them is really comfortable, even if you need to reshape them substantially before merge (tools like git commit --amend, git rebase -i, interactive selection of hunks or even lines with git gui etc.). Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commits visible in our main page.
On Tue, Mar 10, 2015 at 03:43:10PM +0300, Dmitry Yemanov wrote: 10.03.2015 15:30, Michal Kubecek wrote: However, there is seldom need for multiple working directories. Right now I have five working directories for the same B2_5_Release branch, each with different uncommitted changes. I don't see how it can be avoided. I prefer to keep work in progress in separate branches (i.e. in committed form). As long as the branch is only local and not pushed to a public repository, it's safe and relatively easy to add changes to its commits, merge multiple commits, reorder them or even split a commit. But other people may prefer different workflow, of course. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commits visible in our main page.
On Tue, Mar 10, 2015 at 02:16:26PM +0100, Dimitry Sibiryakov wrote: 10.03.2015 14:11, Omacht András wrote: with git log you can see every previous version of a file without closing the IDE, switching branches, etc. Do you mean some kind of plugin to MSVC that can show me the file's version from any branch? Not sure how difficult would it be to write a MSVC plugin showing output of a command but to see what does a file look like at certain point in history, you can use git show commit:path (tag or branch also work in place of commit). I often use something like git diff commit -U30 -- path or even git diff commit -U -- path to see what has changed. Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Commits visible in our main page.
On Tue, Mar 10, 2015 at 10:31:40AM +0200, marius adrian popa wrote: Also we could integrate the github api and stats https://github.com/FirebirdSQL/core/graphs/commit-activity Hm... so we have two github mirrors now? Michal Kubecek -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fwd: [Firebird-checkins] SF.net SVN: firebird:[60440] firebird/trunk/src (and CORE-4654)
On Mon, Dec 29, 2014 at 02:45:40PM +0300, Alex Peshkoff wrote: I strongly disagree with poisoning of trunk sources with such fixes in order to make ancient buggy compilers happy. I suggest to rollback that changes. Agreed. As far as I can tell, this is problem of the compiler (old g++ versions), not of the source. If needed, such patch can be included in a distribution package. Michal Kubecek -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [FB-Tracker] Created: (CORE-4654) Failed POSIX build
On Mon, Dec 29, 2014 at 10:55:32AM +, Dmitriy Starodubov (JIRA) wrote: Failed POSIX build -- Key: CORE-4654 URL: http://tracker.firebirdsql.org/browse/CORE-4654 Project: Firebird Core Issue Type: Bug Components: Build Issues / Porting Affects Versions: 3.0 Beta 2 Environment: CentOS release 6.5 (Final) gcc version 4.4.7 20120313 Reporter: Dmitriy Starodubov Priority: Minor Compile fails with errors like this: In file included from /home/dmitry/work/fb/src/yvalve/why.cpp:37: /home/dmitry/work/fb/src/yvalve/../yvalve/YObjects.h: In constructor 'Why::YTransaction::YTransaction(Why::YTransaction*)': /home/dmitry/work/fb/src/yvalve/../yvalve/YObjects.h:248: error: class 'Why::YTransaction' does not have any field named 'YHelper' /home/dmitry/work/fb/src/yvalve/../yvalve/YObjects.h:252: error: no matching function for call to 'Why::YHelperWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::ITransactionImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::IReferenceCountedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::IVersionedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::ITransaction ::YHelper()' /home/dmitry/work/fb/src/yvalve/../yvalve/YObjects.h:132: note: candidates are: Why::YHelperImpl, Intf::YHelper(typename Intf::Declaration*) [with Impl = Why::YTransaction, Intf = Firebird::FirebirdApiFirebird::FirebirdPolicy::ITransactionImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::IReferenceCountedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::IVersionedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::ITransaction ] /home/dmitry/work/fb/src/yvalve/../yvalve/YObjects.h:125: note: Why::YHelperWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::ITransactionImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::IReferenceCountedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::IVersionedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::ITransaction ::YHelper(const Why::YHelperWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::ITransactionImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::IReferenceCountedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdApiFirebird::FirebirdPolicy::IVersionedImplWhy::YTransaction, Firebird::FirebirdApiFirebird::FirebirdPolicy::InheritFirebird::FirebirdAp iFirebird::FirebirdPolicy::ITransaction ) I encountered the same problem on SLE11 SP3 (gcc 4.3). You might try patch work-around-g-problem-in-SLE11.patch from https://build.opensuse.org/package/show/home:mkubecek:firebird30/firebird It's not sufficient with latest snapshots (as can be seen from today's build failures), apparently more places with the same (or similar) problem have been added recently. I'm going to update the patch tomorrow or day after tomorrow. Michal Kubecek -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] [PATCH] Fix mingw build using posix environment
On Thu, Dec 18, 2014 at 03:37:04PM +0300, Alexpux wrote: 18 дек. 2014 г., в 15:29, Alex Peshkoff peshk...@mail.ru написал(а): patching file builds/posix/prefix.mingw Hunk #1 FAILED at 41. 1 out of 1 hunk FAILED -- saving rejects to file builds/posix/prefix.mingw.rej Hmm, I’m clearly apply it on my repo :( The git mirror is only updated once a day, IIRC, so there may be a difference between it and the (primary) SVN repository on SourceForge. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Jaybird test failures with Firebird 3 beta 1
On Fri, Dec 05, 2014 at 05:37:15PM +0100, Mark Rotteveel wrote: I also tried the snapshot build (3.0.0.31467), but that seems to behave even worse. For example events don't seem to be working; log shows: RAMONAFri Dec 05 16:34:12 2014 Unable to complete network request to host Ramona. Timeout occurred while waiting for a secondary connection for event processing It looks like Firebird is asking Jaybird to connect to the wrong address (Error message from Jaybird says Unable to complete network request to host 0.0.0.0, but I haven't looked into it yet so this might just be an artifact from how Jaybird constructs its error message here. Might this be related to the IPv6 changes? It may be related but this explanation seems wrong. As it used to be before the IPv6 support, client part of aux_connect() ignores the address sent by server (there might be a NAT in between) and uses the same address as the main port. I would rather understand if the port advertised by server was wrong, that would be a problem. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Jaybird test failures with Firebird 3 beta 1
On Fri, Dec 05, 2014 at 06:17:04PM +0100, Michal Kubecek wrote: It may be related but this explanation seems wrong. As it used to be before the IPv6 support, client part of aux_connect() ignores the address sent by server (there might be a NAT in between) and uses the same address as the main port. Should be main connection. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Jaybird test failures with Firebird 3 beta 1
On Fri, Dec 05, 2014 at 06:51:47PM +0100, m...@lawinegevaar.nl wrote: As Jaybird is not using the client library, that assumption might not be correct. I'll look into that more closely tomorrow. I checked the code and I think I see where the problem comes from: aux_request() sets packet-p_resp to what getsockname() returns for the main connection socket. In case of an IPv4 connection to a PF_INET6 listening socket, that would be a v6-mapped address. If the client expects only struct sockaddr_in and doesn't check sa_family, it will read wrong address. While the clients should eventually learn to expect and process IPv6 addresses, this should be fixed to preserve backwards compatibility by calling unmapV4() on the address first so that an v6-mapped address is converted to normal IPv4 one. The reason I didn't notice this when testing the events was that 2.5 libfbclient also ignores the address passed by server so that it didn't matter that it was wrong. I'll commit a fix once I have it tested. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fb3 daily build and test broken
On Mon, Nov 24, 2014 at 11:19:30AM +0100, Pavel Cisar wrote: I'd gladly look into it, but I can't test it. It works for 2.5.3 and I can't install latest 3.0 as there is no 64-bit Linux build, and Alpha 2 doesn't work on my openSUSE 13.1 (problem with icu). You can find working openSUSE packages (with a hack making it work with SUSE ICU hack) in home:mkubecek:firebird30 OBS project: http://download.opensuse.org/repositories/home:/mkubecek:/firebird30/openSUSE_13.1/ Right now it has 31406 build (which is the one where problems were observed), I plan to update it later today. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fb3 daily build and test broken
On Mon, Nov 24, 2014 at 12:26:22PM +0100, Philippe Makowski wrote: Hi, Le 24/11/14 11:19, Pavel Cisar a écrit : I'd gladly look into it, but I can't test it. It works for 2.5.3 and I can't install latest 3.0 as there is no 64-bit Linux build here is the latest snapshot : http://web.firebirdsql.org/downloads/snapshot_builds/linux/fb3.0/ I don't think it's going to work on openSUSE 13.1 because of the trick with ICU versioning; that's also the reason why building from unpatched sources fails - running the binaries during build fail as they can't find usable ICU. I haven't pushed the patch into firebird SVN yet because I can't say I really understand the problem and because my current patch looks more as a dirty hack than a proper solution. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fb3 daily build and test broken
On Mon, Nov 24, 2014 at 04:33:08PM +0300, Alex Peshkoff wrote: On 11/24/14 13:19, Pavel Cisar wrote: Hi, I'd gladly look into it, but I can't test it. It works for 2.5.3 and I can't install latest 3.0 as there is no 64-bit Linux build, and Alpha 2 doesn't work on my openSUSE 13.1 (problem with icu). Pavel, what is that ICU problem? My understanding is that ICU upstream changes its ABI between minor versions (in particular, between 51.1 and 51.2) so that openSUSE now uses combination of (upstream) major and minor for both soname and U_ICU_VERSION_SHORT. With this trick, upstream Firebird sources build binaries but then they fail to find usable ICU library (so that the build fails). Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Snapshot 3.0.0.31439 Not listen on any port?
On Fri, Nov 21, 2014 at 10:03:12AM +0200, Vlad Khorsun wrote: 19.11.2014 16:08, Michal Kubecek пишет: Could you check if first getaddrinfo() call returns EAI_FAMILY on Windows XP without IPv6 support? The way I read the manual page it should but I would rather make sure. On W2K3 without IPv6 i see that getaddrinfo() returns 0 and gai_result contains one entry with ai_family == AF_INET6. But later, call to socket() returns error 10047 (WSAEAFNOSUPPORT). Note, EAI_* codes is just an aliases for WSA* codes. In this case WSAEAFNOSUPPORT is an real error code for EAI_FAMILY. That's unfortunate... I suppose the easiest way out of this would be adding something like #ifdef WIN_NT if (!host_str /* Windows version Vista */) gai_hints.ai_family = AF_INET; #endif This should also take care of XP/2003 with IPv6 support (making the server listen on 0.0.0.0 by default). BTW, always write OS error code with custom error message ! You mean the number in addition to its text representation? Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fb3 daily build and test broken
On Fri, Nov 21, 2014 at 12:01:30PM +0100, Philippe Makowski wrote: in sys.log for surperserver we have : Nov 21 10:41:14 precise64 kernel: [ 724.669973] fbt_run[21560]: segfault at 0 ip (null) sp 7fff305ac9f8 error 14 in python2.7[40+27] Error 0x14 means instruction fetch in user mode. As both IP and fault address are zero, my guess would be an attempt to call a (rem_port?) method which has not been set. A core dump (or at least a stack trace) would be definitely helpful. Nov 21 10:41:14 precise64 kernel: [ 724.688799] [ cut here ] Nov 21 10:41:14 precise64 kernel: [ 724.688808] WARNING: at /build/buildd/linux-3.2.0/fs/dcache.c:1287 d_set_d_op+0x7c/0xb0() ... This is a kernel warning, looks like an inconsistency in dentry cache. I'm not familiar with filsystems code but this seems to point to a bug in kernel code. and in firebird.log precise64 Fri Nov 21 10:40:27 2014 /opt/firebird/bin/fbguard: guardian starting /opt/firebird/bin/firebird precise64 Fri Nov 21 10:40:27 2014 setsockopt: error setting IPV6_V6ONLY to 0 This is surprising. Looking at 3.2 kernel code, setting IPV6_V6ONLY can only fail for two reasons: - optlen sizeof(int) - local port already set (i.e. setsockopt() called after bind()) There are also universal reasons, e.g. invalid socket number, but those would definitely cause more errors, not only one with setsockopt(). Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Fb3 daily build and test broken
On Fri, Nov 21, 2014 at 04:07:57PM +0300, Alex Peshkoff wrote: On 11/21/14 15:58, Michal Kubecek wrote: On Fri, Nov 21, 2014 at 12:01:30PM +0100, Philippe Makowski wrote: in sys.log for surperserver we have : Nov 21 10:41:14 precise64 kernel: [ 724.669973] fbt_run[21560]: segfault at 0 ip (null) sp 7fff305ac9f8 error 14 in python2.7[40+27] Error 0x14 means instruction fetch in user mode. As both IP and fault address are zero, my guess would be an attempt to call a (rem_port?) method which has not been set. Pay attention - in python2.7 module. Firebird server does not use python. If it happened in libfbclient2 function called from python, kernel would still show python, wouldn't it? But without at least a stack trace, it's not possible to tell which code to blame. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Odp: Snapshot 3.0.0.31439 Not listen on any port?
On Thu, Nov 20, 2014 at 02:45:08PM +0100, Dimitry Sibiryakov wrote: 20.11.2014 11:11, Michal Kubecek wrote: I committed the fix now Unfortunately EAI_ADDRFAMILY is not defined by MSVC. Thank you, I removed the EAI_ADDRFAMILY part now. It can be put back (protected by #ifdef) if there is an actual system where getaddrinfo() returns EAI_ADDRFAMILY in situation when it makes sense to repeat the call with AF_UNSPEC. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Snapshot 3.0.0.31439 Not listen on any port?
On Thu, Nov 20, 2014 at 03:01:11PM +0100, Dimitry Sibiryakov wrote: 19.11.2014 15:08, Michal Kubecek wrote: The reason for AF_INET6 is that a PF_INET6 socket bound to :: can accept both IPv6 and IPv4 connections (as long as IPV6_V6ONLY is 0 and the system supports this setting) while a PF_INET socket can only accept IPv4 connections. Therefore PF_INET6 should be preferred if we want to listen on any address (as long as we can only use one socket). At first, as you can see from link in previous message, it doesn't work for Windows XP. Yes, I'm aware of this deficiency of Windows XP. At second, it is a good idea to use separate sockets on other systems as well to let users bind any interface for IPv6 and localhost only for IPv4. Right now, something like that is not possible. But the reason is not in the way IPv6 support is implemented (after all, I added a config setting for the IPV6_V6ONLY socket option). The reason is that RemoteBindAddress only accepts one listening address and server can create and manage only one listening socket (for main connections, there can be more for aux connections (events)). I have a patch allowing the server to create and handle multiple listening sockets and specify a list of addresses. With this patch, your example could be configured with IPv6V6Only = true RemoteBindAddress = 127.0.0.1 ; :: However, this patch is less tested and more intrusive than the rest of the IPv6 series. As we are already in beta phase, I didn't feel confident enought to commit it with the others. And I don't intend to do so unless someone with sufficient weight says it's OK (someone having it tested on Windows would be also helpful). So I suppose the question is: do we want to introduce a potentially risky feature at this stage or would we rather accept the server not being able to listen on both IPv4 and IPv6 on two platforms, one of them already unsupported now, the other either unsupported when 3.0 is released or shortly after that? Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Snapshot 3.0.0.31439 Not listen on any port?
On Wed, Nov 19, 2014 at 12:11:06PM +0200, Vlad Khorsun wrote: 19.11.2014 11:42, Michal Kubecek wrote: On Wed, Nov 19, 2014 at 10:01:32AM +0100, liviuslivius wrote: I downloaded today FB 3.0.0.31439 - but i can not connect to it And i do not see 3050 listen port with netstat -a Does setting RemoteBindAddress 127.0.0.1 in firebird.conf help? No. And it can't help. Look at inet.cpp, line 775: // Prepare hints struct addrinfo gai_hints; memset(gai_hints, 0, sizeof(gai_hints)); gai_hints.ai_family = (packet ? AF_UNSPEC : AF_INET6); How it could work on OS without support for AF_INET6 ? Right, this is wrong. Actually, even on a system supporting IPv6, using an IPv4 address in RemoteBindAddress creates an IPv6 socket with v6-mapped address (which works so I didn't notice it). AF_INET6 should only be used if host string is empty, otherwise, it would be better to let getaddrinfo() decide. I'll test if AF_UNSPEC works correctly on Linux (with IPv6 support). Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Snapshot 3.0.0.31439 Not listen on any port?
On Wed, Nov 19, 2014 at 12:52:10PM +0100, Michal Kubecek wrote: Handling Windows XP with IPv6 support will be more tricky. What might work would be to move the attempt to set IPV6_V6ONLY earlier, before getaddrinfo() is called, and also use AF_UNSPEC if setting IPV6_V6ONLY to 0 failed. ...which won't work as we can't try setsockopt() until we create the socket and socket creation needs to wait for getaddrinfo() to tell us what packet family to use. :-( I guess there are three options: 1. Add the explanation and suggestion to use RemoteBindAddress 0.0.0.0 as workaround on pre-Vista Windows to Release Notes. 2. Let the server listen on 0.0.0.0 by default everywhere (so that admin can change it where IPv6 is needed). 3. Add multiple sockets support, turn IPv6V6Only on by default and interpret as 0.0.0.0;:: (if it is on). Personally, I like option 1 most; the fact that systems needing the workaround are either unsupported already (except for POS usage) or soon to be might calm down our conscience. Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Snapshot 3.0.0.31439 Not listen on any port?
On Wed, Nov 19, 2014 at 03:52:37PM +0200, Vlad Khorsun wrote: 19.11.2014 13:52, Michal Kubecek wrote: Could you please try attached patch? It uses AF_UNSPEC in getaddrinfo() hints whenever host string is non-empty and retries getaddrinfo() with AF_UNSPEC if AF_INET6 fails for empty host string. It doesn't look at error codes and tries to guess what happens. For example, if first call of getaddrinfo() returns error because of wrong service name, code will change ai_family without a reason to do it. Second call will fail too (because reason was not fixed). Third call with fixed service name will succeed but with AF_UNSPEC in ai_family. Is it how it supposed to work ? Could you check if first getaddrinfo() call returns EAI_FAMILY on Windows XP without IPv6 support? The way I read the manual page it should but I would rather make sure. Handling Windows XP with IPv6 support will be more tricky. What might work would be to move the attempt to set IPV6_V6ONLY earlier, before getaddrinfo() is called, and also use AF_UNSPEC if setting IPV6_V6ONLY to 0 failed. You assume that IPv6 support is more important than IPv4. Why ? No, I don't. The reason for AF_INET6 is that a PF_INET6 socket bound to :: can accept both IPv6 and IPv4 connections (as long as IPV6_V6ONLY is 0 and the system supports this setting) while a PF_INET socket can only accept IPv4 connections. Therefore PF_INET6 should be preferred if we want to listen on any address (as long as we can only use one socket). Michal Kubecek -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] Odp: Snapshot 3.0.0.31439 Not listen on any port?
On Wed, Nov 19, 2014 at 11:07:31PM +0100, liviusliv...@poczta.onet.pl wrote: I will try tommorow Thank you. But if you have Win7pro install xpmode ;) I don't. Actually, my only Windows system is a virtual machine with Windows XP. But I don't have any development tools on it, I'm only using it to update maps in my TomTom GPS. BtW, I found that on Linux with IPv6 supported but disabled in kernel (either via sysctl or kernel command line parameter), glibc version of getaddrinfo() returns EAI_NONAME. So current version of the patch (attached) uses (n == EAI_FAMILY || n == EAI_ADDRFAMILY || (!host_str n == EAI_NONAME)) Hopefully this will catch all cases of missing/disabled IPv6 (and nothing it shouldn't). Michal Kubecek From 14ba01488a207d2f5006239ffe856b064e02e131 Mon Sep 17 00:00:00 2001 From: Michal Kubecek mkube...@suse.cz Date: Wed, 19 Nov 2014 12:40:53 +0100 Subject: [PATCH] Fix server address resolution on systems without IPv6 support. We should only use AF_INET6 in getaddrinfo() hints if host string is empty (so that we are listening on a wildcard address. If host string is non-empty, let getaddrinfo() decide suitable address family. As a bonus, this prevents server from binding to v6-mapped address if an IPv4 address is used for RemotBindAddress configuration directive. Also fall back to AF_UNSPEC if getaddrinfo() fails with error code which may be caused by IPv6 support missing or disabled. --- src/remote/inet.cpp | 26 -- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/remote/inet.cpp b/src/remote/inet.cpp index 3696ef7..dff717b 100644 --- a/src/remote/inet.cpp +++ b/src/remote/inet.cpp @@ -869,7 +869,7 @@ rem_port* INET_connect(const TEXT* name, // Prepare hints struct addrinfo gai_hints; memset(gai_hints, 0, sizeof(gai_hints)); - gai_hints.ai_family = (packet ? AF_UNSPEC : AF_INET6); + gai_hints.ai_family = ((packet || host.hasData()) ? AF_UNSPEC : AF_INET6); gai_hints.ai_socktype = SOCK_STREAM; #ifndef WIN_NT @@ -882,14 +882,28 @@ rem_port* INET_connect(const TEXT* name, const char* host_str = (host.hasData() ? host.c_str() : NULL); struct addrinfo* gai_result; - int n = getaddrinfo(host_str, protocol.c_str(), gai_hints, gai_result); + bool retry_gai; + int n; - if (n (protocol == FB_SERVICE_NAME)) + do { - // Try hard-wired translation of gds_db to 3050 - protocol.printf(%hu, FB_SERVICE_PORT); + retry_gai = false; n = getaddrinfo(host_str, protocol.c_str(), gai_hints, gai_result); - } + + if ((n == EAI_FAMILY || n == EAI_ADDRFAMILY || (!host_str n == EAI_NONAME)) + (gai_hints.ai_family == AF_INET6)) + { + // May be on a system without IPv6 support, try IPv4 + gai_hints.ai_family = AF_UNSPEC; + retry_gai = true; + } + if ((n == EAI_SERVICE) (protocol == FB_SERVICE_NAME)) + { + // Try hard-wired translation of gds_db to 3050 + protocol.printf(%hu, FB_SERVICE_PORT); + retry_gai = true; + } + } while (retry_gai); if (n) { -- 1.8.4.5 -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrkFirebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] IPv6 and multiple sockets - conclusion (?)
On Sun, Nov 16, 2014 at 12:45:10AM -0200, Adriano dos Santos Fernandes wrote: In firebird.conf it says: # IPv4 and IPv6. Default is false on POSIX systems, true on Windows. # On Windows, false value can only be used since Windows Vista. Why it's different in POSIX and Windows? And why the default in Windows is something not accepted after Vista? But I then see in the code that the default is always false? Originally the default was different but then I thought about it and realized that if IPV6_V6ONLY can't be set, the default doesn't matter, and if it can be set, the default can be always false (or rather should be, unless listening on multiple sockets is also implemented). I forgot to change the comment in firebird.conf, I'll fix it. In SockAddr.h: static const unsigned maxLen = sizeof(struct sockaddr_in6); char data[maxLen]; Please change maxLen (static const) to MAX_LEN. And you declare a char array and cast to different structs. It will cause alignment problems in some architectures. It's better to use an union in this case, which will make avoid the casts too. I wasn't sure if the union would guarantee that af_family, sin_family and sin6_family members will be always at the same offset. But it seems so and assumptions like this are quite frequent. Moreover, I tried to rewrite the file now and there is only one place where char array is more convenient and several where a union would be easier to handle. So I'm going to change it (I'll need to run a few tests to make sure nothing breaks). Michal Kubecek -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] IPv6 and multiple sockets - conclusion (?)
On Mon, Nov 10, 2014 at 02:12:25PM -0200, Adriano dos Santos Fernandes wrote: - methodNames in camel case, please - do not start variables with underline - SockAddr.h is copyright by Dmitry in 2006?? (you borrow the header from another file or is this based on existing code?) Yes, I copied the header from another file and forgot to edit it. Thank you for your comments. I updated the patch series at http://www.mk-sys.cz/tmp/fb3-ipv6/ to address them. Michal Kubecek -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] IPv6 and multiple sockets - conclusion (?)
Hello, I'm happy to announce that attached series finally passed my tests for all three modes (superserver, standaloneclassic and classic) including events passing via aux connection. I only need to write a README documenting extensions to the connection string and configuration. First eight patches implement IPv6. These are divided into logical parts and are quite well tested (but only on Linux, AFAIK). Last patch allows server to listen on multiple ports. It's quite big, less tested (as it was only completely finished last week). As Beta 1 is already out, I'm reluctant to commit it without consulting first. Now, I suppose, there are three options (not counting the obvious one to leave all of it after 3.0): 1. Playing it safe, taking the IPv6 implementation with change to make server only listen on (PF_INET) 0.0.0.0 by default. That way backward compatibility is preserved and who wants to serve IPv6 requests, will need to explicitely enable it. 2. If all supported platforms allow PF_INET6 socket bound to :: to accept IPv4 connections (IPV6_V6ONLY = 0), we can take the IPv6 implementation as is, i.e. listening on :: (with IPV6_V6ONLY disabled) by default. 3. Take the whole series including the last patch which allows server to listen on multiple sockets (RemoteBindAddress being a semicolon separated list). Ideas? Suggestions? Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] IPv6 and multiple sockets - conclusion (?)
On Tue, Nov 04, 2014 at 12:20:44AM +0100, Michal Kubecek wrote: I'm happy to announce that attached series finally passed my tests for Forgot to attach the patch series. It is available at http://www.mk-sys.cz/tmp/fb3-ipv6/ Michal Kubecek -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel