История одного подвига
Несколько недель назад GLPI ни с того, ни с сего стал зависать на загрузке страницы заявки. Жалоба поступила от моих сослуживцев, когда я находился в отпуске. Открыв страницу в браузере я не обнаружил проблемы, о чем уведомил своих коллег.
К сведению — у меня Firefox на Linux, а у них Chrome на Windows.
Они настаивали на проблеме. И я специально установил на свой нетбук зоопарк браузеров: Chrome, Opera (Blink, Presto). Проверил работу с GLPI в них — проблемы не обнаружил. Когда вышел на работу, проверил на рабочем компьютере под Windows и с удивлением обнаружил, что кроме Firefox, ни один из выше перечисленных браузеров не грузит страницу задачи. По совету одного из знакомых php программистов полез в код страницы и выяснил, что загрузка спотыкается о javascript устанавливающих дату создания заявки и дату выполнения. Памятуя о последних обновлениях Windows, связанных с изменениями часового пояса во Владивостоке, из-за которых у меня время раньше положенного срока перескочило на час назад, я попробовал поменять часовой пояс с Владивосток на Брисбен — проблема пропала.
Послесловие
Хочу выразить особую благодарность scif, Андрею — системному администратору, который не дал мне забить на эту проблему и заставил меня с ней разобраться, а также компании Microsoft, благодаря которой у меня всегда будет работа.
Не смотрите, что статья написана в столь легком стиле. Я потратил на решение этой проблемы целый день. Буду очень рад, если другим системным администраторам эта статья сэкономит время.
Технические данные
Зависшая страница не отвечала ни на какие действия, кроме закрытия вкладки. Процесс вкладки постепенно рос до 1ГБ, после чего браузер сообщал об ошибке загрузки страницы.
JavaScript, который вызывал проблему:
<script type="text/javascript">Ext.onReady(function() {
var md1665785715 = new Ext.ux.form.DateTime({
hiddenName: 'date'
,id: 'date1665785715'
,value: '2014-10-21 17:05:01'
,hiddenFormat:'Y-m-d H:i:s'
,applyTo: 'showdate1665785715'
,timeFormat:'H:i'
,timeWidth: 55
,dateWidth: 90
,startDay: 1,allowBlank: false,timeConfig: {
altFormats:'H:i:s',increment: 1,allowBlank: false},dateFormat: 'd-m-Y',dateConfig: {
altFormats:'d-m-Y|d-n-Y',allowBlank: false} });
});</script>
<script type="text/javascript">Ext.onReady(function() {
var md33295515 = new Ext.ux.form.DateTime({
hiddenName: 'due_date'
,id: 'date33295515'
,value: ''
,hiddenFormat:'Y-m-d H:i:s'
,applyTo: 'showdate33295515'
,timeFormat:'H:i'
,timeWidth: 55
,dateWidth: 90
,startDay: 1,allowBlank: true,timeConfig: {
altFormats:'H:i:s',increment: 1,allowBlank: true},dateFormat: 'd-m-Y',dateConfig: {
altFormats:'d-m-Y|d-n-Y',allowBlank: true} });
});</script>
Автор: zurapa