|
|
|
|
#1 |
|
Клиент ХФ продлено до 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
|
|
|
|
#2 |
|
Клиент ХФ продлено до 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
|
|
|
|
#3 |
|
Клиент ХФ продлено до 1 марта
Регистрация: 14.12.2012
Сообщений: 57
|
Сделайте что-нибудь, да хотя бы логирование запросов к MySQL, чтобы можно было выявить проблему.
|
|
|
|
#4 |
|
Клиент ХФ продлено до 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 |
|
|
|
#5 |
|
Клиент ХФ продлено до 1 марта
Регистрация: 14.12.2012
Сообщений: 57
|
По тому, что я вижу на этом персонаже, баг выглядит так: допустим у персонажа А есть вещи а, b, c, которые он хочет переслать персонажу B. Он отправляет ему письмо с вещами a и b, письмо успешно сохраняется в базу, однако в результате какой-то ошибке в вашем коде он по-прежнему видит вещи a и b у себя в инвентаре. Он думает "Что за херня?" и снова отправляет персонажу B вещи a и b, добавляя к ним вещь c. На этот раз вещи пропадают в его инвентаре, однако в базу письмо не сохраняется, т.к. в базе уже есть письмо с вещами a и b, а индекс уникален. В результате персонаж B, зайдя в игру, видит первое письмо с вещами a и b, а вещь c навсегда пропала.
|
|
|
|
#6 |
|
Главный программист
Регистрация: 18.01.2011
Сообщений: 4,429
|
То что вы решили ключ почты отключить что-бы не было ошибок на сервере, эт не вариант.
Сам себе дома наслал уже 15 раз айтемы туда и обратно и не один не застрял.
__________________
Внимание: с 1 мая 2015 г. скайп технической поддержки будет: L2-scripts старый скайп тех поддержки обслуживаться не будет ! |
|