nixys / nxs-chat-srv

Nixys chat bot that integrates Telegram and Redmine
GNU General Public License v3.0
35 stars 10 forks source link

too big integer #8

Closed denchru closed 1 year ago

denchru commented 6 years ago

Environment: Redmine version 3.3.1.stable Ruby version 2.3.3-p222 (2016-11-21) [x86_64-linux-gnu] Rails version 4.2.7.1 Environment production Database adapter Mysql2 SCM: Filesystem
Redmine plugins: nxs_chat 2.0

[27.03.2018 07:55:21.348653] (7528) DEBUG: [rest-api]: ra queue add: success [27.03.2018 07:55:21.348692] (7528) INFO: connection accepted 149.154.167.xxx:16437 "POST /tlgrm?token=xxx" 200 52 "" [27.03.2018 07:55:21.385113] (7524) DEBUG: [queue-worker]: db queue set lock: success (tlgrm user id: 455384214, lock expire ms: 30000) [27.03.2018 07:55:21.385191] (7524) DEBUG: [queue-worker]: db queue get: success (tlgrm user id: 455384214) [27.03.2018 07:55:21.385239] (7524) DEBUG: [queue-worker]: db queue get: success (tlgrm user id: 455384214) [27.03.2018 07:55:21.385578] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: projects) [27.03.2018 07:55:21.385811] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: users) [27.03.2018 07:55:21.386009] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: issue_priorities) [27.03.2018 07:55:21.386223] (7524) DEBUG: [queue-worker]: db session get: success (tlgrm userid: 455384214) [27.03.2018 07:55:21.386252] (7524) ERROR: error while parse json buf: too big integer near '18446744073495758716' (line: 1) [27.03.2018 07:55:21.386261] (7524) ERROR: [queue-worker]: tlgrm db-sess unit error: read json from value error [27.03.2018 07:55:21.386418] (7524) DEBUG: [queue-worker]: ra queue get: success [27.03.2018 07:55:21.388845] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: projects) [27.03.2018 07:55:21.389038] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: users) [27.03.2018 07:55:21.389228] (7524) DEBUG: [queue-worker]: db cache get: success (cache type: issue_priorities)

Здравствуйте. В чем может быть причина ошибки "too big integer"

borisershov commented 6 years ago

Здравствуйте!

Если у Вас ошибка для пользователя с ID 455384214 воспроизводится в настоящий момент, то прошу прислать вывод команды в redis-cli: GET nxs-chat-srv:dev:sess:455384214

Обращаю внимание на то, что в выводе будет содержаться чувствительная информация, по этому перед публикацией все ключи и идентификаторы необходимо исказить. При этом очень важно сделать так, чтобы был понятен тип этих данных (число, строка и прочее) и их длина.

Нам это нужно для того, чтобы понять в каком именно поле не верное значение. Без этого будет сложно определить как и почему оно туда попало.

borisershov commented 6 years ago

И ещё момент ... В команде GET nxs-chat-srv:dev:sess:455384214 значение dev должно соответствовать значению опции redis.keys_space конфигурационного файла. Это на случай, если Вы меняли этот параметр. dev - это значение по умолчанию.

denchru commented 6 years ago

127.0.0.1:6379> GET nxs-chat-srv:dev:sess:455384214 "{\"rdmn_api_key\":\"XXXXXXXXXXXXXXX\",\"chat_id\":XXXXXXXXXXXXXX,\"usr_message_id\":135,\"bot_message_id\":136,\"updated_at\":1521096221,\"type\":1,\"wait_for\":0,\"files\":[],\"data\":{\"message\":\"\",\"is_private\":false,\"is_ext\":false}}"

redis.keys_space - установлено dev как значение по умолчанию.

borisershov commented 6 years ago

Скажите, если под пользователем у которого наблюдается проблема завершить сессию (для этого надо отправить боту команду /dialogdestroy), а затем снова её начать (для этого надо написать какое-то сообщение боту), то будет ли воспроизводиться проблема?

borisershov commented 6 years ago

Ещё опишите, пожалуйста, какие действия производил пользователь до момента получения ошибки?

denchru commented 6 years ago

логи на результат dialogdestroy

[27.03.2018 17:30:05.719102] (7328) DEBUG: [rest-api]: received message from telegram (auth token: "XXXXXXXX" (correct), post body: "{"update_id":591236802, "message":{"message_id":278,"from":{"id":455384214,"is_bot":false,"first_name":"XXXXXXXX","last_name":"XXXXXXXX","username":"XXXXXXXX","language_code":"ru"},"chat":{"id":455384214,"first_name":"XXXXXXXX","last_name":"XXXXXXXX","username":"XXXXXXXX","type":"private"},"date":1522161005,"text":"/dialogdestroy","entities":[{"offset":0,"length":14,"type":"bot_command"}]}} [27.03.2018 17:30:05.719317] (7328) DEBUG: [rest-api]: ra queue add: success [27.03.2018 17:30:05.719365] (7328) INFO: connection accepted 149.154.167.212:58902 "POST /tlgrm?token=XXXXXXXX" 200 52 "" [27.03.2018 17:30:05.993944] (7324) DEBUG: [queue-worker]: ra queue get: success [27.03.2018 17:30:05.996469] (7324) DEBUG: [queue-worker]: db cache get: success (cache type: projects) [27.03.2018 17:30:05.996668] (7324) DEBUG: [queue-worker]: db cache get: success (cache type: users) [27.03.2018 17:30:05.996871] (7324) DEBUG: [queue-worker]: db cache get: success (cache type: issue_priorities) [27.03.2018 17:30:05.999107] (7324) DEBUG: [queue-worker]: db queue add: success (tlgrm userid: 455384214) [27.03.2018 17:30:06.187859] (7325) DEBUG: [queue-worker]: db queue set lock: success (tlgrm user id: 455384214, lock expire ms: 30000) [27.03.2018 17:30:06.187965] (7325) DEBUG: [queue-worker]: db queue get: success (tlgrm user id: 455384214) [27.03.2018 17:30:06.188039] (7325) DEBUG: [queue-worker]: db queue get: success (tlgrm user id: 455384214) [27.03.2018 17:30:06.188337] (7325) DEBUG: [queue-worker]: db cache get: success (cache type: projects) [27.03.2018 17:30:06.188570] (7325) DEBUG: [queue-worker]: db cache get: success (cache type: users) [27.03.2018 17:30:06.188809] (7325) DEBUG: [queue-worker]: db cache get: success (cache type: issue_priorities) [27.03.2018 17:30:06.189041] (7325) DEBUG: [queue-worker]: db session get: success (tlgrm userid: 455384214) [27.03.2018 17:30:06.189064] (7325) ERROR: error while parse json buf: too big integer near '18446744073495758716' (line: 1) [27.03.2018 17:30:06.189075] (7325) ERROR: [queue-worker]: tlgrm db-sess unit error: read json from value error

какие действия производил пользователь до момента получения ошибки этой информации к сожалению нет.

borisershov commented 6 years ago

Тогда завершите, пожалуйста, сессию вручную с помощью этой команды в redis-cli: DEL nxs-chat-srv:dev:sess:455384214, а затем попросите пользователя (если это возможно) повторить те же действия. Приведут ли они к этой же проблеме?

Пока в коде явных ошибок не нашли, по этому если проблему получится воспроизвести - будет очень здорово.

denchru commented 6 years ago

Спасибо, удаление сессии помогло.

borisershov commented 6 years ago

А после этого ошибка воспроизводится?

denchru commented 6 years ago

к текущему моменту воспроизвести ошибку не удалось. Если ошибка повторится укажу тут. Еще раз спасибо.

borisershov commented 6 years ago

Т.к. проблему воспроизвести и выявить на текущий момент не удалось - мы добавим в код дополнительное логгирование, чтобы видеть какие данные поступают в сессию. По этому я пока верну тикет в работу...

borisershov commented 1 year ago

This repository is considered deprecated and will be archived. For the new version of this tool please go to Nixys Support Bot project.