From: Evgeny Sinelnikov <sin@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] tdb-1.0.6-alt3: Sisyphus/i586 test rebuild failed [12] Date: Sun, 26 Jul 2009 23:23:35 +0400 Message-ID: <921f6bb40907261223w47904f94p5628f8a718c49d8@mail.gmail.com> (raw) In-Reply-To: <6062a6e60907250308v68c444ccw20156db6b1af042c@mail.gmail.com> 25 июля 2009 г. 14:08 пользователь Alexander Bokovoy (ab@altlinux.org) написал: > 2009/7/24 Evgeny Sinelnikov <sin@altlinux.ru>: >> 20 июля 2009 г. 14:49 пользователь Mykola S. Grechukh >> (gns@altlinux.org) написал: >>> 2009/7/20 QA Team Robot <qa@altlinux.org>: >>>> Package: tdb-1.0.6-alt3 >>>> Status: Sisyphus/i586 test rebuild failed >>> >>> >>> ффпечь >> >> Таким образом, путь для выкладывания libtdb и libtalloc от samba4 открыт. >> >> Прошу конструктивно указать на препятствия и проблемы, которые есть в >> текущих сборках Fedora в этом плане, и чем это грозит нам в текущих >> условиях. "О, ужас, ужас, ужас..." - это не совсем понятно :) >> >> Для большей ясности прикладываю diff'ы для libtdb и libtalloc между >> samba-3.4.0 и samba-4.0.0alpha8. Прошу заметить, что критической >> разницы в ABI там нет. > Проблема, которую я вижу, состоит в том, что мы будем делать с > применением результатов той самой дискуссии в samba-technical@. По git > diff release-4-0-0alpha8 HEAD -- lib/talloc и git diff release-3-4-0 > HEAD -- lib/talloc можно видеть, что изменения в API и ABI > существенные. Я прислал два дифа для lib/talloc и lib/tdb - как раз для git diff release-4-0-0alpha8 HEAD (4ceae35d7eb3b7e2e38f226e39853cff40d92464 - ветка v4-0-stable) и git diff release-3-4-0 (51b334e2d9739abc748490f6085ed8b8e5e1f4b4 - ветка v3-4-stable) Репозиторий git://git.samba.org/samba.git По этим дифам видно, что ABI и API критичных различий _не_ имеют. В связи с этим сборка в Fedora выглядит вполне правомерно. Я не там смотрю? Почему я вижу отсутствие разницы, а вы говорите о существенных различиях? Давайте посмотрим... Разница для talloc: diff -Nur talloc-v3.4/talloc.h talloc-v4alpha8/talloc.h --- talloc-v3.4/talloc.h 2009-07-03 15:21:14 +0400 +++ talloc-v4alpha8/talloc.h 2009-07-09 18:46:46 +0400 @@ -121,7 +121,7 @@ /* The following definitions come from talloc.c */ void *_talloc(const void *context, size_t size); void *talloc_pool(const void *context, size_t size); -void _talloc_set_destructor(const void *ptr, int (*destructor)(void *)); +void _talloc_set_destructor(const void *ptr, int (*_destructor)(void *)); int talloc_increase_ref_count(const void *ptr); size_t talloc_reference_count(const void *ptr); void *_talloc_reference(const void *context, const void *ptr); diff -Nur talloc-v3.4/talloc.c talloc-v4alpha8/talloc.c --- talloc-v3.4/talloc.c 2009-07-03 15:21:14 +0400 +++ talloc-v4alpha8/talloc.c 2009-07-09 18:46:46 +0400 @@ -1008,6 +1008,11 @@ return NULL; } + /* don't let anybody try to realloc a talloc_pool */ + if (unlikely(tc->flags & TALLOC_FLAG_POOL)) { + return NULL; + } + /* don't shrink if we have less than 1k to gain */ if ((size < tc->size) && ((tc->size - size) < 1024)) { tc->size = size; Разница для tdb, чуть побольше... diff -Nur tdb-v3.4/include/tdb.h tdb-v4alpha8/include/tdb.h --- tdb-v3.4/include/tdb.h 2009-07-03 15:21:14 +0400 +++ tdb-v4alpha8/include/tdb.h 2009-07-09 18:46:46 +0400 @@ -129,6 +129,7 @@ tdb_log_func tdb_log_fn(struct tdb_context *tdb); void *tdb_get_logging_private(struct tdb_context *tdb); int tdb_transaction_start(struct tdb_context *tdb); +int tdb_transaction_prepare_commit(struct tdb_context *tdb); int tdb_transaction_commit(struct tdb_context *tdb); int tdb_transaction_cancel(struct tdb_context *tdb); int tdb_transaction_recover(struct tdb_context *tdb); --- tdb-v3.4/docs/README 2009-07-03 15:21:14 +0400 +++ tdb-v4alpha8/docs/README 2009-07-09 18:46:46 +0400 @@ -236,3 +236,11 @@ commit a current transaction, updating the database and releasing the transaction locks. . +---------------------------------------------------------------------- +int tdb_transaction_prepare_commit(TDB_CONTEXT *tdb) + + prepare to commit a current transaction, for two-phase commits. + Once prepared for commit, the only allowed calls are + tdb_transaction_commit() or tdb_transaction_cancel(). Preparing + allocates disk space for the pending updates, so a subsequent + commit should succeed (barring any hardware failures). в файле transaction.c добавлена соответствующая функциональность. В master'е для tdb добавлена косметика. Для talloc изменения действительно есть... Но если ждать 3.5, то его можно всё время ждать и вообще ничего не паковать... Причём я не вижу разницы для 4.0 и 3.4 сейчас - они идут в ногу... Это снова разговор о будущем... Объясните мне, пожалуйста, где эта существенная разница. Может у меня нет тот репозиторий? > Если мы сейчас запакуем "не master", то будет необходимо > решать эту проблему при следующей сборке -- когда выйдет либо > очередная альфа 4.0, либо релиз 3.5, что будет гораздо сложнее, потому > что в тот момент придется снова согласовывать сборки. Да, и решать эту проблему можно жёсткой зависимостью на версию. Понимаете, ни в одной стабильной ветке этим новым API talloc ещё не пахнет. И пока мы с вами рассуждаем, на счёт будущих проблем, в Fedora этим уже пользуются... И завтра, когда будет новое API, тоже будут пользоваться... К чему вести речь о коде из master'а, если он отсутствует в обоих стабильных ветках? Это же забалтывание проблемы. Сейчас можно запаковать 3.4 и 4.0, а там тех существенных отличий, о которых идёт речь нет. > Поскольку предыдущая дискуссия в devel@ продемонстрировала, что в > Сизифе все равно не верят в стабильность сборок Самбы, то я предлагаю > поступить следующим образом: > 1. Собрать 4.0 и 3.4+ в том виде, как оно есть сейчас в master, не > решая проблемы обновления в пост-установочных скриптах. Бинарные > пакеты будут иметь имена samba3 и samba4, пакет samba-* исчезнет. > Установка samba3-* будет приводить к сносу samba-* с бэкапом имеющихся > настроек samba-* в определенное место. > 2. Создать пакет samba-migration, который бы мигрировал настройки, > созданные бэкапом, в новые насколько это возможно. > 3. Добавить поддержку миграции в samba3 на основе samba-migration. Здесь не сказано про общие библиотеки, которые должны сходится. Давайте определимся. Я считаю, стоит придерживаться подхода выбранного в Fedora, когда общие либы буду выделены в отдельные пакеты... Два вида библиотек быть не должно... Иначе это чревато другими проблемами... Когда одна либа слинкована с libtalloc-samba3, другая - с libtalloc-samba4, а приложение с этими двумя... Подход с двумя либами - это не решение. > Таким образом, в Сизифе некоторое время будет разломана Самба в смысле > переноса старых настроек и ожиданий конфигуратора. Также надо будет > пересобрать несколько пакетов, которые используют libsmbclient, > поскольку ABI изменится. Я полагаю, что "ломание" самбы - это префекционисткая мера, которая нужна нескольким процентам пользователей, которые используют самбу совместно с тесной интеграцией с AD. Для большинства пользователей Сизифа эта проблема решается удалением старых баз от самбы. Вот и вся миграция. Кроме как гостя и системных пользователей у нас обычно никого не используют... Для тех же кому это миграция нужна сидеть на Сизифе не рекомендуется... Я бы предложил вместо ломания сделать после обновления автоматический бекап в специально выделенное место. Далее, написанный, в будущем, мигратор позволит восстанавливать базы до тех пор пока они нормально не восстановятся... Такой подход позволит обновить самбу ничего не ломая. -- Sin (Sinelnikov Evgeny)
next prev parent reply other threads:[~2009-07-26 19:23 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-07-20 10:49 ` Mykola S. Grechukh 2009-07-24 17:34 ` Evgeny Sinelnikov 2009-07-25 10:08 ` Alexander Bokovoy 2009-07-26 19:23 ` Evgeny Sinelnikov [this message] 2009-07-26 20:08 ` Alexander Bokovoy 2009-07-26 21:29 ` Evgeny Sinelnikov 2009-07-27 4:08 ` Alexander Bokovoy 2009-07-27 6:28 ` Evgeny Sinelnikov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=921f6bb40907261223w47904f94p5628f8a718c49d8@mail.gmail.com \ --to=sin@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git