datakit icon indicating copy to clipboard operation
datakit copied to clipboard

Seeking is not allowed in streams

Open samoht opened this issue 8 years ago • 0 comments

Seems that terminal likes to seek on stdout of files put into background (not sure why, need to investigate):

+321731243us fs9p       [DEBUG] S tag 1 Read(len(data): 8)
+321731281us fs9p       [DEBUG] S tag 2 Read(len(data): 8)
+321762447us fs9p       [DEBUG] C ((tag (1))
                                    (payload
                                     (Read
                                      ((fid 9) (offset 16) (count 8168)))))
+321762511us vfs        [DEBUG] offset:16 current-offset:16
+321762530us fs9p       [DEBUG] S tag 1 Read(len(data): 0)
+321762808us fs9p       [DEBUG] C ((tag (2))
                                    (payload
                                     (Read
                                      ((fid 10) (offset 8) (count 8168)))))
+321762977us vfs        [DEBUG] offset:8 count:16
+321763229us fs9p       [DEBUG] S ((tag (2))
                                    (payload
                                     (Err
                                      ((ename "Attempt to seek in stream")
                                       (errno ())))))
+321763377us fs9p       [DEBUG] C ((tag (1))
                                    (payload
                                     (Read
                                      ((fid 9) (offset 16) (count 8168)))))
+321763559us vfs        [DEBUG] offset:16 current-offset:16
+321763578us vgithub    [DEBUG] wait
+321803168us fs9p       [DEBUG] C ((tag (2))
                                    (payload
                                     (Read
                                      ((fid 10) (offset 8) (count 8168)))))
+321803252us vfs        [DEBUG] offset:8 current-offset:16
+321803278us fs9p       [DEBUG] S ((tag (2))
                                    (payload
                                     (Err
                                      ((ename "Attempt to seek in stream")
                                       (errno ())))))
+321803514us fs9p       [DEBUG] C ((tag (2))
                                    (payload
                                     (Read
                                      ((fid 10) (offset 8) (count 8168)))))
+321803670us vfs        [DEBUG] offset:8 current-offset:16
+321803702us fs9p       [DEBUG] S ((tag (2))
                                    (payload
                                     (Err
                                      ((ename "Attempt to seek in stream")
                                       (errno ())))))
+321803967us fs9p       [DEBUG] C ((tag (2))
                                    (payload
                                     (Read
                                      ((fid 10) (offset 8) (count 8168)))))
+321804020us vfs        [DEBUG] offset:8 current-offset:16
+321804039us fs9p       [DEBUG] S ((tag (2))
                                    (payload
                                     (Err
                                      ((ename "Attempt to seek in stream")
                                       (errno ())))))
+321804771us fs9p       [DEBUG] C ((tag (2)) (payload (Clunk ((fid 10)))))
+321804959us fs9p       [DEBUG] S ((tag (2)) (payload (Clunk ())))

To repro:

$ cat /db/github.com/samoht/test/pr/8/updates
< PRESS CTL-G >
$ bg
$ echo pending db/github.com/samoht/test/pr/8/state
pending
pending
cat: read error: No error information

samoht avatar Apr 07 '16 12:04 samoht