LINUX.ORG.RU
ФорумTalks

[billing] Феерический косяк

 


0

0

Вчера узнал, что порядка 1-2 недели назад у местного крупного прова СибирьТелекома бОльшую часть абонентов их биллинг посчитал дважды и дважды списал у каждого со счета деньги. Было много ругани, скандалов, трупов, катаклизмов, бла-бла-бла.
Вчера с самого утра у меня в конторе UTM5 проделала то же (тогда про СибирьТелеком я еще был не в курсе). Написал разрабам - те, как партизаны.
В срочном порядке приходится переделывать просто кучу работы, ибо бОльшая часть клиентов просто залочеными (у некоторых в месяц нехреновые суммы набегают).
Сейчас буквально узнаю, что проблема у тучи контор. Связана с тем, что биллинги неправильно посчитали октябрьский переход с летнего времени на нормальное и оп! - по 2 раза как-то там всем насчитали расход.

На оф.форуме разрабы до сих пор молчат.
Это что, болезнь такая?

★★
Ответ на: комментарий от Deleted

Пардон, недоглядел.

Мдя, похоже все-таки придется лезть в исходники glibc. :(

Relan ★★★★★
()
Ответ на: комментарий от BAN

1. Ты не читал постов выше.
2. Ты тупой.

Я посмотрю этот abills, если ты мне покажешь его сертификат! Иначе мин.связи сожрет со всеми потрахами. Это тебе не домашняя локалка

vitroot ★★
() автор топика
Ответ на: комментарий от Relan
1981-04-01 00:00:00
1981-04-01 00:00:00
1981-04-01 01:00:00
mktime() or localtime_r() failed
$ date '+%Z %:z'
SAMST +05:00

glibc-2.9_p20081201-r2

Suigintou ★★★★★
()
Ответ на: комментарий от vitroot

>Клиентов полно, которые сами выбирают тарификация.

Если есть из чего выбирать, вот в Украине сделали анлим на госмасшатабе и вроде все работает(были проблемы на старте, но каналы были расширены и стало намного лучче).

FiXer ★★☆☆☆
()
Ответ на: комментарий от Relan

> Вот пример демонстрирующий проблему с mktime(). Он выводит 3 даты, по идее все они должны быть одинаковыми. Однако 1 апреля 1981 года случается что-то странное. Более поздние даты не смотрел. У кого есть возможность, запустите этот пример и напишите результат с указанием версии glibc.


~ $ ./a.out
1981-04-01 00:00:00
1981-04-01 00:00:00
1981-04-01 01:00:00
mktime() or localtime_r() failed


Она, родимая, 2.10.1

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

# ./a.out
1981-04-01 00:00:00
1981-04-01 00:00:00
1981-04-01 00:00:00

Это glibc-2.9_p20081201-r2 в чруте с примерно такой же джентой. Соответственно в чруте локальное время пока не настроено.

Lumi ★★★★★
()
Ответ на: комментарий от Relan

Похоже это в твоём коде небольшая ошибка. Вот решение:

--- test.c.a	2009-10-02 18:52:34.811994672 +0600
+++ test.c.b	2009-10-02 18:50:57.798994562 +0600
@@ -26,6 +26,7 @@
       fprintf(stderr, "strptime() failed\n");
       return 1;
    }
+   local_tm.tm_isdst = -1;
    local_time = mktime(&local_tm);
    localtime_r(&local_time, &local_tm2);
    snprintf(buffer, sizeof(buffer), "%d-%02d-%02d %02d:%02d:%02d",
Подробности в соответствующем man'е.

Deleted
()
Ответ на: комментарий от Deleted

Да, по всей видимости вы правы. Вот этого я не знал (из man strptime):

In principle, this function does not initialize tm but only stores the values specified. This means that tm should be initialized before the call. Details differ a bit between different Unix systems. The glibc implementation does not touch those fields which are not explicitly specified, except that it recomputes the tm_wday and tm_yday field if any of the year, month, or day elements changed.

Спасибо за помощь.

Relan ★★★★★
()
Ответ на: комментарий от wyldrodney

wyldrodney> Прости, а разве нет опенсорсных биллингов? Я как минимум трижды видел новости о новых релизах.

Есть. Только для провайдерам и т.п. запрещено ими пользоваться, так как они несертифицированы.

Quasar ★★★★★
()
Ответ на: комментарий от hdclnr

>СПБ, eltel- та же ситуация. Вечером буду звонить, ругаться

Насколько мне известно,у них косяков массово вроде не наблюдалось. М. б. дело в чем-то еще ?

ef37 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.