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