[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-27 Thread Vladimir Serbinenko
Update of bug #40363 (project grub):

  Status:None = Fixed  
 Open/Closed:Open = Closed 

___

Follow-up Comment #6:

comitted modification of my patch.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-26 Thread Bernhard Übelacker
Follow-up Comment #5, bug #40363 (project grub):

When the block number gets over 0x the last
packet gets ack'ed twice and grub shows this error:

error: not an IP.

(Due to an tcpdump at the tftp server; the tftp server
itself is logging that the file was sent successfully.)
(With the patch #29471 tftp.diff applied on top of
yesterdays git c16535a845dcbb2b1d3b42994d3b72b8dc088a38)

I think this is because ack_sent stores only the 2 byte
block number.

When storing in ack_sent the real block number like in
attached patch it works when the block number turns over.
(And works also for smaller files.)

(Tested indeed only in a tiny network with one VM as server,
one VM and one PC as clients.)


(file #29478)
___

Additional Item Attachment:

File name:
0001-TFTP-Handle-overflow-in-blocknumber-fixes-bug-40363-try-4.patch Size:2 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-25 Thread Vladimir Serbinenko
Follow-up Comment #2, bug #40363 (project grub):

This patch worked only by chance that the priority queue was empty at the
moment of wraparound.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-25 Thread Bernhard Übelacker
Follow-up Comment #3, bug #40363 (project grub):

Then if the datatype change is removed the sorting in the
priority queue is still correct and only when comparing with
the network data using only the lowest 2 bytes?
(new adjusted patch)

(file #29470)
___

Additional Item Attachment:

File name:
0001-TFTP-Handle-overflow-in-blocknumber-fixes-bug-40363-try-2.patch Size:1 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-25 Thread Vladimir Serbinenko
Follow-up Comment #4, bug #40363 (project grub):

If packet for 1 reaches GRUB before packet  then packet 1 would be
considered to come before  and will be processed as delayed retransmission
and GRUB will discard it but (re)send ack for , then it will take packet
for  and process it correctly, send ack for . Then server will see ack
for  and  which it will interpret as 1 and go on with sending
10001 and GRUB will wait for 1 which it will never receive. The reason why
it worked for you is combination of #40293 and your network being perfect (no
losses or duplicates). The full problem is more complex than casting few
types. In general there is no solution. Imagine that packet for 0 got
duplicate in network and delayed and arrives at the same time as  and
before 1. Then there is no way to distinguish this situation from packet
1 arriving. You can handle it only by introducing some assumptions. The
most sensible is that you never have packets more than 0x8000 apart. Then
(grub_int16_t)(a-b) would give correct compare. Please try attached patch.

(file #29471)
___

Additional Item Attachment:

File name: tftp.diff  Size:1 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-24 Thread Bernhard Übelacker
URL:
  http://savannah.gnu.org/bugs/?40363

 Summary: TFTP: Files bigger than 63 MB generate error:
timeout reading `/boot/initrd'.
 Project: GNU GRUB
Submitted by: bernhardu
Submitted on: Do 24 Okt 2013 15:10:34 GMT
Category: Network
Severity: Major
Priority: 5 - Normal
  Item Group: Software Error
  Status: None
 Privacy: Public
 Assigned to: None
 Originator Name: 
Originator Email: 
 Open/Closed: Open
 Discussion Lock: Any
 Release: 
 Release: Bazaar - trunk
 Reproducibility: Every Time
 Planned Release: None

___

Details:

When attempting to load a file with a size bigger
than 63 MB over TFTP grub shows this error message:

error: timeout reading `/boot/initrd'.

The problem lies in the blocknumber assigned to each
network packet. TFTP uses only 2 bytes for it, therefore
continuing after the overflow with blocknumber 0.
This overflow happens with a blocksize of 1024 after 63 MB.

(With current git of today f70d5c0701c6edf7f83c2e5ad01d29962b0aabd0)





___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub


[bug #40363] TFTP: Files bigger than 63 MB generate error: timeout reading `/boot/initrd'.

2013-10-24 Thread Bernhard Übelacker
Additional Item Attachment, bug #40363 (project grub):

File name: 0001-TFTP-Handle-overflow-in-blocknumber-fixes-bug-40363.patch
Size:1 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?40363

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/


___
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub