[#108176] [Ruby master Bug#18679] Encoding::UndefinedConversionError: "\xE2" from ASCII-8BIT to UTF-8 — "taf2 (Todd Fisher)" <noreply@...>

Issue #18679 has been reported by taf2 (Todd Fisher).

8 messages 2022/04/05

[#108185] [Ruby master Feature#18683] Allow to create hashes with a specific capacity. — "byroot (Jean Boussier)" <noreply@...>

Issue #18683 has been reported by byroot (Jean Boussier).

13 messages 2022/04/06

[#108198] [Ruby master Feature#18685] Enumerator.product: Cartesian product of enumerators — "knu (Akinori MUSHA)" <noreply@...>

Issue #18685 has been reported by knu (Akinori MUSHA).

8 messages 2022/04/08

[#108201] [Ruby master Misc#18687] [ANN] Upgraded bugs.ruby-lang.org to Redmine 5.0 — "hsbt (Hiroshi SHIBATA)" <noreply@...>

Issue #18687 has been reported by hsbt (Hiroshi SHIBATA).

10 messages 2022/04/09

[#108216] [Ruby master Misc#18691] An option to run `make rbconfig.rb` in a different directory — "jaruga (Jun Aruga)" <noreply@...>

Issue #18691 has been reported by jaruga (Jun Aruga).

14 messages 2022/04/12

[#108225] [Ruby master Misc#18726] CI Error on c99 and c2x — "znz (Kazuhiro NISHIYAMA)" <noreply@...>

Issue #18726 has been reported by znz (Kazuhiro NISHIYAMA).

11 messages 2022/04/14

[#108235] [Ruby master Bug#18729] Method#owner and UnboundMethod#owner are incorrect after using Module#public/protected/private — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18729 has been reported by Eregon (Benoit Daloze).

28 messages 2022/04/14

[#108237] [Ruby master Bug#18730] Double `return` event handling with different tracepoints — "hurricup (Alexandr Evstigneev)" <noreply@...>

Issue #18730 has been reported by hurricup (Alexandr Evstigneev).

8 messages 2022/04/14

[#108294] [Ruby master Bug#18743] Enumerator#next / peek re-use each others stacktraces — sos4nt <noreply@...>

Issue #18743 has been reported by sos4nt (Stefan Schテシテ殕er).

20 messages 2022/04/19

[#108301] [Ruby master Bug#18744] I used Jazzy to generate the doc for my iOS library, but it showed me a bug — "zhaoxinqiang (marc steven)" <noreply@...>

Issue #18744 has been reported by zhaoxinqiang (marc steven).

8 messages 2022/04/20

[ruby-core:108165] [Ruby master Bug#18676] Misleading Documentation/Bug: Incorrect File.position on a file opened with "a" mode

From: "jeremyevans0 (Jeremy Evans)" <noreply@...>
Date: 2022-04-04 00:38:32 UTC
List: ruby-core #108165
Issue #18676 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Rejected

apatniv (Vivek Ak) wrote:
> Examining the offset in /proc filesytem
> ``` shell
>  ->cat /proc/22675/fdinfo/7
> pos:    0
> flags:  02102001
> mnt_id: 30
> 
> ```

If the kernel is stating the file position is `0`, it doesn't seem like a bug that Ruby is also stating the position is `0`. For files opened in append mode, the kernel doesn't update the position until a write occurs.  This makes sense, as for every write, the kernel must reposition to the end of the file, so that writes to files opened in append mode always append, even when there are concurrent writes by multiple processes.

----------------------------------------
Bug #18676: Misleading Documentation/Bug: Incorrect File.position on a file opened with "a" mode
https://bugs.ruby-lang.org/issues/18676#change-97139

* Author: apatniv (Vivek Ak)
* Status: Rejected
* Priority: Normal
* ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
Documentation says that whenever a file is opened in "a" mode, the stream is positioned at the end of stream. However, #tell method returns 0 instead of the size of the file. (https://ruby-doc.org/core-3.1.1/IO.html#class-IO-label-Position)


Issue happens with latest version of ruby 3.1.1 as well. 

How to reproduce:

``` ruby
cat code_to_reproduce.txt 

fp = File.open("sample_data.txt", "a")

puts "File size=#{fp.size} position=#{fp.tell}"
```

Output: See the **position value**

``` shell
 ->ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]

 ->wc sample_data.txt 
 1  2 12 sample_data.txt
 ->cat sample_data.txt 
hello world

 ->ruby code_to_reproduce.txt 
File size=12 position=0

 ->cat code_to_reproduce.txt 

fp = File.open("sample_data.txt", "a")

puts "File size=#{fp.size} position=#{fp.tell}"
```


Further debugging with **`irb`**

``` ruby
rb(main):009:0> fp = File.open("sample_data.txt", "a")
irb(main):010:0> fp.tell
=> 0
irb(main):011:0> fp.size
=> 12
irb(main):012:0> fp.fileno
=> 7
irb(main):013:0> Process.pid
=> 22675

```

Examining the offset in /proc filesytem
``` shell
 ->cat /proc/22675/fdinfo/7
pos:    0
flags:  02102001
mnt_id: 30

```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread