ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Michael Shigorin <mike@osdn.org.ua>
To: ALT Linux Sisyphus mailing list <sisyphus@altlinux.org>
Subject: [sisyphus] Re: стабильный... нестабильный...
Date: Fri, 24 Jun 2005 19:17:35 +0300
Message-ID: <20050624161735.GN24580@osdn.org.ua> (raw)
In-Reply-To: <20050624151852.GC23459@basalt.office.altlinux.org>


[-- Attachment #1.1: Type: text/plain, Size: 1970 bytes --]

On Fri, Jun 24, 2005 at 07:18:52PM +0400, Dmitry V. Levin wrote:
> > > > Иван, а не хотите потихоньку (может, с 3.0) съезжать со всем
> > > > этим хозяйством с сизифа на что-то более предсказуемое плюс
> > > > бэкпорты по вкусу [и с Вашим участием]?
> > > Думаю, что это очень нездравое предложение.
> > Поясни?
> Ты предлагаешь человеку, который может позволить себе
> тестировать не самые широко используемые компоненты Сизифа и
> тем самым делать их лучше, прекратить тестирование.

Я предлагаю подумать.  Подумав сам, что именно предлагаю.

> А ведь это нанесёт больший ущерб Сизифу, чем все ругающие ALT
> вместе взятые в качестве показателя экспоненты.

Если человек в очередной взрыв психанёт и уйдёт из сообщества,
будет хуже.  К сожалению, так было и не раз (и не с самыми
наивными людьми).

Как ты можешь помнить, в теме "стабильный сизиф" я всеми
конечностями держался за тезис "если можно не разламывать или 
локализовать проблемы -- давайте постараемся делать так".

Бишь мне как разработчику на базе Sisyphus, а не дистрибутивов,
*критично* качество части его пакетной базы.

Но рекомендации даются не из эгоистических побуждений -- 
я считаю, что гораздо более уместным вариантом тестирования
Sisyphus является наличие у тестирующего:

- системы снапшотов (свой кривой скрипт и ещё пару прилагаю);
- тестовых систем (возможно, находящихся в эксплуатации, но легко
  выводимых из неё и/или некритичных -- как, например, один или
  несколько узлов в кластере);
- систем, которые работают на снапшоте, прошедшем предварительную
  обкатку на тестовых агрегатах.

На данный момент моё понимание ситуации говорит о том, что без
подобной буферизации тестирование может обойтись слишком дорого
человеку, а вследствие этого -- проекту.

PS: повешено на http://wiki.sisyphus.ru/admin/HandyAdvice, 
comments are welcome.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

[-- Attachment #1.2: daily-rsync.sh --]
[-- Type: text/plain, Size: 2194 bytes --]

#!/bin/sh
# script by Michael Shigorin <mike@osdn.org.ua> for snapshotting
# ALT Linux Sisyphus locally; feel free to use and modify, would
# be glad to hear back about changes

# v0.2: fix STUPID bug which manifested when doing several 
# syncs per day *and* the first wasn't done off complete (stable)
# mirror

# v0.3: better $DEST handling in case of repeated rsync failures
# during some period of time *but* with some data transferred
# so they better not get lost and re-rsynced

# v0.4: TIMESTAMP fix by Denis Smirnov (mithraen@altlinux) induced
# by discussion with Dmitry Levin (ldv@altlinux)

# v0.5: altlinux-release is searched in noarch instead of i586

# mirror/site-specific
SRC="ftp.altlinux.org.ua::ALTLinux/Sisyphus/"
BASEDIR="/var/ftp/pub/EMT/Sisyphus/"

# retry params
MAXCOUNT=5
TIMEOUT=60

# shouldn't need to be changed
DATE=`date +%Y%m%d`
LOGDIR="$BASEDIR/log/"
LOGFILE="$LOGDIR/$DATE.log"
DEST="$BASEDIR/.syncing/"

RSYNCARGS="-av --partial --delete --bwlimit=120"

RPMARGS="-qp --queryformat %{RELEASE}\n"
TAGFILE="$DEST/files/noarch/RPMS/altlinux-release-Sisyphus-alt*.noarch.rpm"

unset OK

# init env
mkdir -p "$BASEDIR" "$LOGDIR"
cd "$BASEDIR"

# create hardlinked copy or init dir
LAST=`ls -d1 20?????? 2>/dev/null | tail -1`
[ -d "$DEST" ] || mkdir -p "$DEST"
[ -n "$LAST" ] && {
	[ `/bin/du -s "$LAST" |cut -f1` -gt `/bin/du -s "$DEST" |cut -f1` ] && {
		cp -alf "$LAST"/* "$DEST"
	}
}

# try to sync up
for attempt in `seq 1 $MAXCOUNT`; do 
	rsync $RSYNCARGS "$SRC" "$DEST" 2>&1 >> "$LOGFILE" && {
		OK="yes"
		break
	}
	sleep "$TIMEOUT"
done

[ -z "$OK" ] && exit 1

# get timestamp from specific package and move to it
#TIMESTAMP=`rpm $RPMARGS $TAGFILE | tail -1 | sed 's/alt//'`
TIMESTAMP=$(date +"%Y%m%d" -d "$(grep ^Date: $TAGFILE | sed 's!.*\([0-9][0-9] ... [0-9][0-9][0-9][0-9]\).*!\1!')")

[ -d "$TIMESTAMP" ] && {
	rsync $RSYNCARGS "$DEST" "$TIMESTAMP"/ 2>&1 >> "$LOGFILE"
} || {
	mv "$DEST" "$TIMESTAMP" 2>>"$LOGFILE"
}

touch -d "$DATE" "$TIMESTAMP"
rm -f current
ln -s "$TIMESTAMP" current

rm -rf "$DEST"

# that's all :)
echo "** $TIMESTAMP sync OK" >> "$LOGFILE"

[-- Attachment #1.3: update_Sisyphus --]
[-- Type: text/plain, Size: 1945 bytes --]

#!/bin/sh
#
# Copyright 2004 (c) Michael Shigorin <mike@osdn.org.ua>
# Copyright 2004-2005 (c) Ivan Fedorov <ns@altlinux.ru>
# script for snapshotting ALT Linux Sisyphus locally.
#
#

# mirror/site-specific
SRC="rsync.altlinux.ru::ALTLinux/Sisyphus/"
BASEDIR="/var/ftp/pub/distributions/ALTLinux/Sisyphus-daily/"

########################################
###SRC="sisyphus.irkutsk.ru::ALTLinux/Sisyphus/"
###BASEDIR="/var/tmp/SIS/Sisyphus-daily/"
########################################

# retry params
MAXCOUNT=10
TIMEOUT=60

# shouldn't need to be changed
DATE=`date +%Y%m%d`
DATE_P=`date +%Y/%m/%d`
DATE_Y=`date +%Y`
DATE_M=`date +%m`

########################################
###DATE=`date +%Y%m%d -d 1day`
###DATE_P=`date +%Y/%m/%d -d 1day`
########################################

LOGDIR="$BASEDIR/../log/"
LOGFILE="$LOGDIR/Sisyphus_$DATE.log"
DEST="$BASEDIR/.syncing"

RSYNCARGS="-vaz --stats --delete-after"

unset OK

# init env
mkdir -p "$BASEDIR/$DATE_Y/$DATE_M" "$LOGDIR"
cd "$BASEDIR" || exit 1

# create hardlinked copy or init dir; order critical
LAST=`ls -d1 20??/??/?? 2>/dev/null | sort | tail -1`

########################################
###LAST="2005/01/19"
########################################

rm -rf "$DEST"
mkdir -p "$DEST"

[ ! -d "$LAST" ] && {
  echo "Can't create $DEST" >> "$LOGFILE"
  exit 1
}

for attempt in `seq 1 $MAXCOUNT`; do 
	rsync $RSYNCARGS "$SRC" "$DEST" --link-dest "$BASEDIR/$LAST" 2>&1 >> "$LOGFILE" && {
		OK="yes"
		break
	}
	sleep "$TIMEOUT"
done

[ -z "$OK" ] && {
  echo "Syncing problems" | tee -a "$LOGFILE"
  exit 1
}

[ ! -d "$BASEDIR/$DATE_P" ] && {
	mv "$DEST" "$DATE_P"
	# fix symlink
	rm -f $BASEDIR/../Sisyphus
	ln -s Sisyphus-daily/"$DATE_P" $BASEDIR/../Sisyphus
} || {
	echo "$DATE_P already exists" | tee -a "$LOGFILE"
	mv "$DEST" "$DATE_P.new"
	exit 2
}

echo "** $DATE sync OK" >> "$LOGFILE"

[-- Attachment #1.4: archive_sisyphus --]
[-- Type: text/plain, Size: 1088 bytes --]

#!/bin/sh -e

PROG="${0##*/}"

Fatal()
{
        echo "${0##*/}: $*" >&2
        exit 1
}

export LC_ALL=C

sisyphus=/path/to/Sisyphus
pattern='^/path/to/archive/Sisyphus/[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}$'
format='/path/to/archive/Sisyphus/%CY/%Cm/%Cd\n/path/to/archive/Sisyphus/%TY/%Tm/%Td\n'

old="$(find /path/to/archive/Sisyphus/ -type d -mindepth 3 -maxdepth 3 |egrep "$pattern" |sort -r |head -1)" ||
	Fatal "old sisyphus lookup failed."
[ -n "$old" -a -d "$old" ] ||
	Fatal "old sisyphus lookup failed."

new="$(find "$sisyphus"/i?86/base -mindepth 1 -maxdepth 1 -type f -name pkglist.\* -printf "$format")" ||
	Fatal "new sisyphus lookup failed."
new="$(echo "$new" |egrep "$pattern" |sort -r |head -1)"
[ -n "$new" ] ||
	Fatal "new sisyphus lookup failed."

if [ "$old" = "$new" ]; then
	echo "$old: latest snapshot already exists."
	exit 0
fi

if [ -d "$new" ]; then
	echo "$old: NON-latest snapshot already exists."
	exit 0
fi

echo "New snapshot to be created: $new"

mkdir -pv ${new%/*}
cp -al "$old" "$new"

rsync -va --delete-after --stats "$sisyphus"/ "$new"/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2005-06-24 16:17 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-23 21:10 [sisyphus] apache-mod_perl broken? Ivan Adzhubey
2005-06-23 21:55 ` [sisyphus] " Alexey Tourbin
2005-06-24  0:46   ` Ivan Adzhubey
2005-06-24  2:18     ` Alexey Tourbin
2005-06-24  2:44       ` Ivan Adzhubey
2005-06-24  3:54         ` Alexey Tourbin
2005-06-24  5:02       ` Alexey Tourbin
2005-06-24  2:33     ` Alexey Tourbin
2005-06-24  2:56       ` Ivan Adzhubey
2005-06-24 13:45         ` Michael Shigorin
2005-06-24 14:52           ` Dmitry V. Levin
2005-06-24 15:07             ` [sisyphus] стабильный... нестабильный... (was: apache-mod_perl broken?) Michael Shigorin
2005-06-24 15:18               ` Dmitry V. Levin
2005-06-24 16:17                 ` Michael Shigorin [this message]
2005-06-24 17:12                   ` [sisyphus] Re: стабильный... нестабильный Dmitry V. Levin
2005-06-24 17:26                   ` Ivan Adzhubey
2005-06-24 19:11                     ` Michael Shigorin
2005-06-24  3:22       ` [sisyphus] Re: apache-mod_perl broken? Ivan Adzhubey
2005-06-24  4:08         ` Alexey Tourbin
2005-06-24 13:56           ` Michael Shigorin
2005-06-24  4:42         ` Mike Lykov
2005-06-24  5:05           ` Ivan Adzhubey
2005-06-24  5:44             ` Mike Lykov
2005-06-24  5:54               ` Ivan Adzhubey
2005-06-24  6:23                 ` Mike Lykov
2005-06-24 14:02                 ` Michael Shigorin
2005-06-24 13:52         ` [sisyphus] nightly dist-upgrade (was: apache-mod_perl broken?) Michael Shigorin
2005-06-24 12:46     ` [sisyphus] Re: apache-mod_perl broken? Michael Shigorin
2005-06-24  6:40   ` Denis A. Yurashkou
2005-06-23 21:56 ` Michael Shigorin

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=20050624161735.GN24580@osdn.org.ua \
    --to=mike@osdn.org.ua \
    --cc=sisyphus@altlinux.org \
    --cc=sisyphus@altlinux.ru \
    /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 Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git