Please test RE24. Thanks!
--Quanah
--
Quanah Gibson-Mount Sr. Member of Technical Staff Zimbra, Inc A Division of VMware, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi,
Any chance to regenerate the build scripts against libtool 2.4.2? Not big deal -- we can take care for it in our packaging system but it would be nice to have it ready without patching.
Without the change test 17 would fail because back_ldap.so can't find symbol ldap_modify_ext, which is caused by a linkage error against libldap_r. After the change everything works like a charm.
Cheers, - -- Xin LI delphij@delphij.net https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die
Xin LI wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi,
Any chance to regenerate the build scripts against libtool 2.4.2? Not big deal -- we can take care for it in our packaging system but it would be nice to have it ready without patching.
Patches welcome.
Without the change test 17 would fail because back_ldap.so can't find symbol ldap_modify_ext, which is caused by a linkage error against libldap_r. After the change everything works like a charm.
Cheers,
Xin LIdelphij@delphij.net https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD)
iQEcBAEBCAAGBQJOuZf8AAoJEATO+BI/yjfBqroIAKUsuq8odTmoDQt7ztFN+qO3 FDk+i7pE7VfMl4RbJes6IR0FCs9KfOQ1zMykHL+1t0dC2JtLN7nShHegKuwqXnxB ieXE+py6KPm5+/PU/dFW4F6NsO5ST5hTqgb63KSwysoE5v08M7JV931jIv5NKxRu cQTX7ql8cE2wC/bOSjkt/v0UoatrbQT+oQmyGK9G3uGarF/SAxb/XU+bnCpLQK/T DkY8sxW5gUXa2RJSnufqvVM++r1zlh4Con1WFmUNitg+QfARI8i6bIUNr/YAv6Uc h8x1r124XqRdy+bcV78ZQtjdsqPHDU8gYRf/1GuOzQRqWsCM4qvW6AOsGJaopRM= =rM0M -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On 11/08/11 13:28, Howard Chu wrote:
Xin LI wrote: Hi,
Any chance to regenerate the build scripts against libtool 2.4.2? Not big deal -- we can take care for it in our packaging system but it would be nice to have it ready without patching.
Patches welcome.
http://people.freebsd.org/~delphij/misc/openldap.diff.gz
Cheers, - -- Xin LI delphij@delphij.net https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die
Xin LI wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On 11/08/11 13:28, Howard Chu wrote:
Xin LI wrote: Hi,
Any chance to regenerate the build scripts against libtool 2.4.2? Not big deal -- we can take care for it in our packaging system but it would be nice to have it ready without patching.
Patches welcome.
Please read http://www.openldap.org/devel/contributing.html
You should have already read the entirety of http://www.openldap.org/devel/ to even be on this mailing list in the first place.
Cheers,
Xin LIdelphij@delphij.net https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD)
iQEcBAEBCAAGBQJOuaNUAAoJEATO+BI/yjfBOBoH/3SaCH/tm5UVR0DQ4aMUhApQ r4VZKQ2vQthbmfExsckwvbB5WuhXH6l6uC9CwNjlcFS+HvZf1Ai44oGLTvu91+mn b2zOdKtehGAKiqh2RhxQh26uIsk8WuC6smD5AwPj5E/wIgDcF/yrddIXjP+Y9kU6 tiyqfWcXL6hp3f+umECahjDZmgXJtAWeMXE3e/fT/QzM9nGZDvXDovfDASaxLXNu vhw0fW4itbcevfuEBXqsECszg8aGt7sHqItqJ/QERgY0jHxRZ8A+kMmku8CW6KF7 Vxdc8S8qlk44OqVEoWtwwqtIv77aZZCzHazG7kFg4xFFVqm3uEjAXTUiOuGmO2k= =4suz -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On 11/08/11 13:51, Howard Chu wrote:
Xin LI wrote: On 11/08/11 13:28, Howard Chu wrote:
Xin LI wrote: Hi,
Any chance to regenerate the build scripts against libtool 2.4.2? Not big deal -- we can take care for it in our packaging system but it would be nice to have it ready without patching.
Patches welcome.
http://people.freebsd.org/~delphij/misc/openldap.diff.gz
Please read http://www.openldap.org/devel/contributing.html
Sorry but I'm not sure if I even could assign rights on these patch -- unlike a functional change, this is merely result from aclocal and autoconf which don't make me feel right to even claim copyright on it.
I've changed the file to include the copyright notice as well as the rights statement putting the modification into public domain as comments to the diff.
Cheers, - -- Xin LI delphij@delphij.net https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die
Xin LI writes:
http://people.freebsd.org/~delphij/misc/openldap.diff.gz
Please read http://www.openldap.org/devel/contributing.html
(...) I've changed the file to include the copyright notice as well as the rights statement putting the modification into public domain as comments to the diff.
How did you do that? When I run autoconf 2.68 or aclocal 1.11.1 on OpenLDAP, with or without your patch, I just get a bunch of error messages. 'aclocal -I build' gives fewer messages, but still some:
$ aclocal -I build build/openldap.m4:683: error: AC_LANG_SOURCE: unknown language: _AC_LANG autoconf/lang.m4:226: AC_LANG_SOURCE is expanded from... build/openldap.m4:683: the top level autom4te: /usr/bin/m4 failed with exit status: 1 aclocal: autom4te failed with exit status: 1
aclocal without '-I build' gives a much longer list of errors.
Autoconf with your patch givses 181 lines of errors (below), with original master it gives 215 lines.
$ autoconf configure.in:1361: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... configure.in:1361: the top level configure.in:1369: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1369: the top level configure.in:1370: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1370: the top level configure.in:1371: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1371: the top level configure.in:1372: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1372: the top level configure.in:1373: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1373: the top level configure.in:1376: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1376: the top level configure.in:1378: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1378: the top level configure.in:1383: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1383: the top level configure.in:1385: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1385: the top level configure.in:1386: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1386: the top level configure.in:1388: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1388: the top level configure.in:1391: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1391: the top level configure.in:1393: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1393: the top level configure.in:1395: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1395: the top level configure.in:1397: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:709: OL_PTHREAD_TRY is expanded from... configure.in:1397: the top level configure.in:1488: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2740: _AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2758: AC_RUN_IFELSE is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... configure.in:1488: the top level configure.in:1878: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... ../../lib/m4sugar/m4sh.m4:610: AS_IF is expanded from... autoconf/general.m4:2047: AC_CACHE_VAL is expanded from... autoconf/general.m4:2060: AC_CACHE_CHECK is expanded from... build/openldap.m4:353: OL_BDB_HEADER_VERSION is expanded from... build/openldap.m4:535: OL_BERKELEY_DB is expanded from... configure.in:1878: the top level configure.in:2501: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body autoconf/lang.m4:198: AC_LANG_CONFTEST is expanded from... autoconf/general.m4:2599: _AC_COMPILE_IFELSE is expanded from... autoconf/general.m4:2609: AC_COMPILE_IFELSE is expanded from... configure.in:2501: the top level
Quanah Gibson-Mount wrote:
Please test RE24. Thanks!
There is something fishy in test044. It seg faults every now and then. Sometimes after 20-30 iterations, sometimes sooner. Not sure whether it's only due to back-mdb.
ITS with details will follow. Others should bang on this as well.
Ciao, Michael.
--On Tuesday, November 08, 2011 8:27 PM +0100 Michael Ströder michael@stroeder.com wrote:
Quanah Gibson-Mount wrote:
Please test RE24. Thanks!
There is something fishy in test044. It seg faults every now and then. Sometimes after 20-30 iterations, sometimes sooner. Not sure whether it's only due to back-mdb.
ITS with details will follow. Others should bang on this as well.
50 iterations completed for me no issue. I'm trying again with 500 iterations. I assume you are seeing this specifically with the back-mdb backend.
I'm using ./run -l 500 -b mdb test044
--Quanah
--
Quanah Gibson-Mount Sr. Member of Technical Staff Zimbra, Inc A Division of VMware, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
--On Tuesday, November 08, 2011 12:13 PM -0800 Quanah Gibson-Mount quanah@zimbra.com wrote:
--On Tuesday, November 08, 2011 8:27 PM +0100 Michael Ströder michael@stroeder.com wrote:
Quanah Gibson-Mount wrote:
Please test RE24. Thanks!
There is something fishy in test044. It seg faults every now and then. Sometimes after 20-30 iterations, sometimes sooner. Not sure whether it's only due to back-mdb.
ITS with details will follow. Others should bang on this as well.
50 iterations completed for me no issue. I'm trying again with 500 iterations. I assume you are seeing this specifically with the back-mdb backend.
I'm using ./run -l 500 -b mdb test044
Zero failures for me after over 1000 runs. OTOH, Howard's been able to reproduce it twice and is looking at how to fix it. ;)
--Quanah
--
Quanah Gibson-Mount Sr. Member of Technical Staff Zimbra, Inc A Division of VMware, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
Quanah Gibson-Mount wrote:
--On Tuesday, November 08, 2011 12:13 PM -0800 Quanah Gibson-Mount quanah@zimbra.com wrote:
--On Tuesday, November 08, 2011 8:27 PM +0100 Michael Ströder michael@stroeder.com wrote:
Quanah Gibson-Mount wrote:
Please test RE24. Thanks!
There is something fishy in test044. It seg faults every now and then. Sometimes after 20-30 iterations, sometimes sooner. Not sure whether it's only due to back-mdb.
ITS with details will follow. Others should bang on this as well.
50 iterations completed for me no issue. I'm trying again with 500 iterations. I assume you are seeing this specifically with the back-mdb backend.
I'm using ./run -l 500 -b mdb test044
Zero failures for me after over 1000 runs. OTOH, Howard's been able to reproduce it twice and is looking at how to fix it. ;)
Stack overrun in back-mdb. back_mdb_search is a bit more memory hungry than back_bdb_search, unfortunately. The nested search call that dynlist invokes is enough to put it over the top.
Michael Ströder wrote:
Howard Chu wrote:
Stack overrun in back-mdb. back_mdb_search is a bit more memory hungry than back_bdb_search, unfortunately. The nested search call that dynlist invokes is enough to put it over the top.
The recent commits fix this?
Not yet. The recent commits mainly address Solaris/Sparc32 porting issues. test044 fails consistently on sparc, so getting that working smoothly seemed to be the more definite approach to verifying a fix.
Howard Chu wrote:
Michael Ströder wrote:
Howard Chu wrote:
Stack overrun in back-mdb. back_mdb_search is a bit more memory hungry than back_bdb_search, unfortunately. The nested search call that dynlist invokes is enough to put it over the top.
The recent commits fix this?
Not yet. The recent commits mainly address Solaris/Sparc32 porting issues.
Ah ok.
test044 fails consistently on sparc, so getting that working smoothly seemed to be the more definite approach to verifying a fix.
Makes sense.
Ciao, Michael.
Michael Ströder wrote:
Howard Chu wrote:
Michael Ströder wrote:
Howard Chu wrote:
Stack overrun in back-mdb. back_mdb_search is a bit more memory hungry than back_bdb_search, unfortunately. The nested search call that dynlist invokes is enough to put it over the top.
The recent commits fix this?
Not yet. The recent commits mainly address Solaris/Sparc32 porting issues.
Ah ok.
test044 fails consistently on sparc, so getting that working smoothly seemed to be the more definite approach to verifying a fix.
Now it's fixed.
Makes sense.
Ciao, Michael.
Howard Chu wrote:
Michael Ströder wrote:
Howard Chu wrote:
Michael Ströder wrote:
Howard Chu wrote:
Stack overrun in back-mdb. back_mdb_search is a bit more memory hungry than back_bdb_search, unfortunately. The nested search call that dynlist invokes is enough to put it over the top.
The recent commits fix this?
Now it's fixed.
All tests pass for back-mdb in master on Solaris 10 / Sparc32. Indexing on sparc64 appears to be broken, will look into that later.