Bug report moved to the new portal: Mmore.club
Detailed info: L2-scripts.com
Skype: Urchika

Our portfolio of solved reports: High Five
Our portfolio of solved reports: GOD
Our portfolio of solved reports: Classic

This forum is closed and open for viewing our work on bug reports for a long time. Thank you all !
Старый 09.03.2013, 04:02   #1
soar
Клиент ХФ продлено до 1 марта
 
Регистрация: 14.12.2012
Сообщений: 57
Восклицание Почта не работает

Код:
[21:53:44] ERROR Error while saving mail!
java.sql.BatchUpdateException: Duplicate entry '269079060' for key 'item_id'
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
        at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at l2s.gameserver.dao.MailDAO.save0(MailDAO.java:141)
        at l2s.gameserver.dao.MailDAO.save(MailDAO.java:463)
        at l2s.gameserver.model.mail.Mail.save(Mail.java:188)
        at l2s.gameserver.clientpackets.RequestExSendPost.runImpl(RequestExSendPost.java:307)
        at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50)
        at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '269079060' for key 'item_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1976)
        ... 12 more
В последней апдейте проблема не решена, почта по-прежнему пропадает. Почему вы удалили предыдущую тему?
soar вне форума  
Старый 09.03.2013, 04:05   #2
soar
Клиент ХФ продлено до 1 марта
 
Регистрация: 14.12.2012
Сообщений: 57
По умолчанию

Код:
[05:25:57] ERROR Error while saving mail!
java.sql.BatchUpdateException: Duplicate entry '269246801' for key 'item_id'
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
        at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at l2s.gameserver.dao.MailDAO.save0(MailDAO.java:141)
        at l2s.gameserver.dao.MailDAO.save(MailDAO.java:463)
        at l2s.gameserver.model.mail.Mail.save(Mail.java:188)
        at l2s.gameserver.clientpackets.RequestExSendPost.runImpl(RequestExSendPost.java:307)
        at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50)
        at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '269246801' for key 'item_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1976)
        ... 12 more

[05:29:44] ERROR Error while saving mail!
java.sql.BatchUpdateException: Duplicate entry '269703561' for key 'item_id'
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
        at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
        at l2s.gameserver.dao.MailDAO.save0(MailDAO.java:141)
        at l2s.gameserver.dao.MailDAO.save(MailDAO.java:463)
        at l2s.gameserver.model.mail.Mail.save(Mail.java:188)
        at l2s.gameserver.clientpackets.RequestExSendPost.runImpl(RequestExSendPost.java:307)
        at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50)
        at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '269703561' for key 'item_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1976)
        ... 12 more
soar вне форума  
Старый 09.03.2013, 04:07   #3
soar
Клиент ХФ продлено до 1 марта
 
Регистрация: 14.12.2012
Сообщений: 57
По умолчанию

Сделайте что-нибудь, да хотя бы логирование запросов к MySQL, чтобы можно было выявить проблему.
soar вне форума  
Старый 09.03.2013, 15:41   #4
soar
Клиент ХФ продлено до 1 марта
 
Регистрация: 14.12.2012
Сообщений: 57
По умолчанию

После удаления из базы уникального ключа в таблице mail_attachments в БД стали попадать все письма, которые раньше пропадали. Это выглядит так:

Код:
message_id, item_id, message_id, sender_id, sender_name, receiver_id, receiver_name, expire_time, topic, body, price, type, unread
19133, 268484257, 19133, 269733723, SamaeL, 268573757, Mithos, 1364079963, впаывп, , 0, 0, 1
19146, 268484257, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19133, 268485238, 19133, 269733723, SamaeL, 268573757, Mithos, 1364079963, впаывп, , 0, 0, 1
19146, 268485238, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19133, 268968724, 19133, 269733723, SamaeL, 268573757, Mithos, 1364079963, впаывп, , 0, 0, 1
19146, 268968724, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19134, 269200284, 19134, 269733723, SamaeL, 268573757, Mithos, 1364081031, авпа, , 0, 0, 1
19146, 269200284, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19134, 269200285, 19134, 269733723, SamaeL, 268573757, Mithos, 1364081031, авпа, , 0, 0, 1
19146, 269200285, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19134, 269202507, 19134, 269733723, SamaeL, 268573757, Mithos, 1364081031, авпа, , 0, 0, 1
19146, 269202507, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
19133, 269246809, 19133, 269733723, SamaeL, 268573757, Mithos, 1364079963, впаывп, , 0, 0, 1
19146, 269246809, 19146, 269733723, SamaeL, 268573757, Mithos, 1364090804, ryeryt, , 0, 0, 1
Я понимаю что так вы видимо решали дюп, связанный с почтой, но неужели вы думаете что такую проблему можно решить средствами БД? В базу НЕ ДОЛЖНЫ попадать дважды одни и те же вещи.
soar вне форума  
Старый 09.03.2013, 15:47   #5
soar
Клиент ХФ продлено до 1 марта
 
Регистрация: 14.12.2012
Сообщений: 57
По умолчанию

По тому, что я вижу на этом персонаже, баг выглядит так: допустим у персонажа А есть вещи а, b, c, которые он хочет переслать персонажу B. Он отправляет ему письмо с вещами a и b, письмо успешно сохраняется в базу, однако в результате какой-то ошибке в вашем коде он по-прежнему видит вещи a и b у себя в инвентаре. Он думает "Что за херня?" и снова отправляет персонажу B вещи a и b, добавляя к ним вещь c. На этот раз вещи пропадают в его инвентаре, однако в базу письмо не сохраняется, т.к. в базе уже есть письмо с вещами a и b, а индекс уникален. В результате персонаж B, зайдя в игру, видит первое письмо с вещами a и b, а вещь c навсегда пропала.
soar вне форума  
Старый 18.03.2013, 17:47   #6
iqman
Главный программист
 
Регистрация: 18.01.2011
Сообщений: 4,429
По умолчанию

То что вы решили ключ почты отключить что-бы не было ошибок на сервере, эт не вариант.
Сам себе дома наслал уже 15 раз айтемы туда и обратно и не один не застрял.
__________________
Внимание: с 1 мая 2015 г. скайп технической поддержки будет: L2-scripts
старый скайп тех поддержки обслуживаться не будет !
iqman вне форума  
Старый 11.05.2013, 22:14   #7
iqman
Главный программист
 
Регистрация: 18.01.2011
Сообщений: 4,429
По умолчанию

Решено .
__________________
Внимание: с 1 мая 2015 г. скайп технической поддержки будет: L2-scripts
старый скайп тех поддержки обслуживаться не будет !
iqman вне форума  
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 06:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot