Марк Коренберг added the comment:
I have studied assembler output of _posixsubprocess.o compilation. Yes,
everything seems safe. So, I'm closing the bug.
--
resolution: -> works for me
stage: test needed -> resolved
status: open -&g
Марк Коренберг added the comment:
Yes, you are almost right. Error-path is not so clear (it is discussed in
another issue), but in general, yes, my previous comment is wrong. So, finally,
there are no bugs around the stack at all.
--
___
Python
Марк Коренберг added the comment:
So, finally:
1. Regarding vfork() and stack - everything is nice. No bugs because libc has
nasty hacks for stack restoration.
2. Having the ability to turn off vfork using environment variables is NICE. At
least, one can easily compare the performance.
3
Марк Коренберг added the comment:
See #47245.
https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/spawni.c#L309
In short - do not use vfork(). Use clone(CLONE_VM | CLONE_VFORK). And build
separate stack.
Current implementation is heavily broken.
Another guy has failed
Марк Коренберг added the comment:
Solution:
https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/spawni.c#L309
In short - do not use vfork(). Use clone(CLONE_VM | CLONE_VFORK). and do
something with stack.
--
___
Python tracker
Марк Коренберг added the comment:
https://github.com/python/cpython/blob/4a08c4c469d36f99d3a5e0f17ad82ab35dcf2835/Modules/_posixsubprocess.c#L717
child_exec(exec_array, argv, envp, cwd,
p2cread, p2cwrite, c2pread, c2pwrite,
errread, errwrite, errpipe_read
Марк Коренберг added the comment:
Rewriting in a way that guarantee no stack (and heap) usage. Because stack is
shared between child and parent. It seems there is no crossplatform way.
Happily we can use some code like I wrote by link in the first message. OR,
stick to posix_nspawn which
New submission from Марк Коренберг :
Using vfork in #35823 is VERY tricky. Please comment out vfork() usage for now.
Yes, we can (should) use vfork(), but we have to rewrite the child code.
https://bugzilla.kernel.org/show_bug.cgi?id=215813
I would say it's URGENT.
--
components
Марк Коренберг added the comment:
Well.
1. We use Python as PID 1. In PID namespace.
2. Further investigation gave information that vfork()+pid=1 actually WORKS.
The problem is connected with another weird thing in kernel (undocumented
unshare() flags).
3. The logic to try fork() after vfork
New submission from Марк Коренберг :
The bug introduced here: #35823
If os.gepid() == 1, vfork() does not work and returns EINVAL.
Please add check for the current pid in condition where CPython chooses between
fork() and vfork().
--
components: Library (Lib)
messages: 416252
nosy
New submission from Марк Коренберг :
I want a new function introduced in intertools. Something like this, but more
optimal, and in C:
===
from itertools import chain, islice
from typing import Iterable, TypeVar
T = TypeVar('T') # pylint: disable=invalid-name
def batches
Марк Коренберг added the comment:
Any kwarg is OK for me, so please do.
--
___
Python tracker
<https://bugs.python.org/issue44521>
___
___
Python-bugs-list mailin
New submission from Марк Коренберг :
#39939 introduced .removeprefix for several classes. I propose adding
kwargs-only parameter `, *, strict: bool = False`. It should raise some
exception (I'm unuse what exactly) if the string DOES NOT start from specified
prefix. False by default only
New submission from Марк Коренберг :
[
xxx
for item in collection
if xxx := mutator(item) is not None
]
--
components: Interpreter Core, Parser
messages: 394233
nosy: lys.nikolaou, pablogsal, socketpair
priority: normal
severity: normal
status: open
title
Марк Коренберг added the comment:
Shame on me. You are right.
--
resolution: -> wont fix
status: open -> closed
___
Python tracker
<https://bugs.python.org/i
Марк Коренберг added the comment:
https://mail.python.org/pipermail/python-ideas/2015-December/037472.html
--
___
Python tracker
<https://bugs.python.org/issue43
Марк Коренберг added the comment:
I don't agree. There are no specifications regarding the question. Since
anything relying on specific implementation (not specification) should not be
considered as something we should support or take care of.
Raising exception is the best thing since
New submission from Марк Коренберг :
OrderedDict([(1,2), (3,4)]) == OrderedDict([(3,4), (1,2)])
Out[1]: False# OK
dict([(1,2), (3,4)]) == dict([(3,4), (1,2)])
Out[2]: True # OK
dict([(1,2), (3,4)]) == OrderedDict([(3,4), (1,2)])
Out[3]: True # NOT OK, since actual order
Марк Коренберг added the comment:
I'm not interested in Windows platform anymore.
--
status: pending -> open
___
Python tracker
<https://bugs.python.org/issu
New submission from Марк Коренберг :
https://man7.org/linux/man-pages/man2/ioctl_iflags.2.html
Seems the ioctl is only way to implement chattr(). I propose to add all these
flags to os.chflags() and to gain its support in Linux.
--
components: Library (Lib)
messages: 385141
nosy
Марк Коренберг added the comment:
FYI: PEP8 does not mention enums.
--
___
Python tracker
<https://bugs.python.org/issue40721>
___
___
Python-bugs-list mailin
New submission from Марк Коренберг :
Example from PEP0435:
(https://www.python.org/dev/peps/pep-0435)
>>> from enum import Enum
>>> class Color(Enum):
... red = 1
... green = 2
... blue = 3
Example from Python documentation:
(https://docs.python.org/3/library/en
Change by Марк Коренберг :
--
components: Library (Lib)
nosy: socketpair
priority: normal
severity: normal
status: open
title: TarFile.add does not support pathlib.Path as a value to first argument.
versions: Python 3.6, Python 3.7, Python 3.8, Python 3.9
Change by Марк Коренберг :
--
assignee: -> docs@python
components: +Documentation
nosy: +docs@python
___
Python tracker
<https://bugs.python.org/issu
New submission from Марк Коренберг :
Actually it works. But it is not documented. Please ad docs.
--
components: asyncio
messages: 368453
nosy: asvetlov, socketpair, yselivanov
priority: normal
severity: normal
status: open
title: asyncio.StreadReader `async for line in reader
New submission from Марк Коренберг :
urlunsplit(('http+unix', '\x00qwe/asd', 'def', '', ''))
gives:
'http+unix://\x00qwe/asd/def'
but should:
'http+unix://\x00qwe%2Fasd/def'
see https://github.com/msabramo/requests
Марк Коренберг added the comment:
NO! it points to asyncio.wait() but should point to asyncio.Event.wait()
--
___
Python tracker
<https://bugs.python.org/issue33
New submission from Марк Коренберг :
https://docs.python.org/3/library/asyncio-sync.html#asyncio.Event :
Class implementing event objects. An event manages a flag that can be set to
true with the set() method and reset to false with the clear() method. The
-> wait() <- method
Марк Коренберг added the comment:
Sorry, I did not
--
resolution: -> rejected
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
New submission from Марк Коренберг :
https://docs.python.org/3/library/asyncio-sync.html#asyncio.Event :
Class implementing event objects. An event manages a flag that can be set to
true with the set() method and reset to false with the clear() method. The
-> wait() <- method
Change by Марк Коренберг :
--
nosy: +socketpair
___
Python tracker
<https://bugs.python.org/issue17305>
___
___
Python-bugs-list mailing list
Unsubscribe:
Марк Коренберг added the comment:
http://man7.org/linux/man-pages/man2/ioctl_ficlonerange.2.html
That possibly should be used under Linux in order to really acheive
zero-copying. Just like modern cp command.
--
nosy: +socketpair
___
Python tracker
Марк Коренберг <socketp...@gmail.com> added the comment:
@ncoghlan
Could you please create Pull-request on Github ?
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Марк Коренберг <socketp...@gmail.com> added the comment:
Actually documented:
http://man7.org/linux/man-pages/man2/msync.2.html
EINVAL: addr is not a multiple of PAGESIZE;
--
nosy: +socketpair
___
Python tracker <rep...@bugs.python.or
Change by Марк Коренберг <socketp...@gmail.com>:
--
pull_requests: +5281
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32221>
___
New submission from Марк Коренберг <socketp...@gmail.com>:
Proof:
import asyncio
async def test():
while True:
print('sleeping 1')
await asyncio.gather(asyncio.sleep(1), return_exceptions=True)
async def amain():
print('creating task')
Марк Коренберг <socketp...@gmail.com> added the comment:
@gvanrossum
More real code:
async def ():
while True:
try:
result = await download()
handle_result(result)
except Exception as e:
log.warning('Fail..%r', e)
Марк Коренберг <socketp...@gmail.com> added the comment:
Will you accept PR if I fix that ?
I think we may merge that in Python 3.8
Who can also judge us? @asvetlov, what do you think about my idea ?
--
___
Python tracker <rep...@bugs.p
Change by Марк Коренберг <socketp...@gmail.com>:
--
components: +Library (Lib)
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Change by Марк Коренберг <socketp...@gmail.com>:
--
type: -> enhancement
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32528>
___
_
New submission from Марк Коренберг <socketp...@gmail.com>:
I have discoverd one very ugly pattern connected with asyncio. Many times I see
code like this:
try:
await something()
except Exception:
log.error('Opertaion failed -- will retry later.')
Seems, everything i
Марк Коренберг <socketp...@gmail.com> added the comment:
So, PR is ready. Please review.
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
New submission from Марк Коренберг <socketp...@gmail.com>:
First: This is the bug:
In [1]: 'großhandel-shop'.encode('idna')
Out[1]: b'grosshandel-shop'
This lead to this:
'xn--einla-pqa'.decode('idna')
Traceback (most recent call last):
File "", line 1, in
File &qu
Марк Коренберг <socketp...@gmail.com> added the comment:
Yes, I can. Should I create new PR ? to which branch ?
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Марк Коренберг <socketp...@gmail.com> added the comment:
No, Improvement for typical case (not scoped IPv6 addresses) was not the
target, but fortunatelly it also sped up.
--
___
Python tracker <rep...@bugs.python.org>
<https://
Марк Коренберг <socketp...@gmail.com> added the comment:
After my patch:
$ python3.7 -m timeit --setup 'import socket; s =
socket.socket(socket.AF_INET6, socket.SOCK_DGRAM); s.bind(("ff02::1de:c0db",
1234, 0, 2))' 's.getsockname()'
50 loops, best of 5: 613 nsec per loop
Марк Коренберг <socketp...@gmail.com> added the comment:
So it may affect applications, that work with UDP and .recvfrom()
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Марк Коренберг <socketp...@gmail.com> added the comment:
Original (not patched) python:
```
In [1]s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
In [2]: s.bind(('ff02::1de:c0db', 1234, 0, 2))
In [3]: timeit s.getsockname()
The slowest run took 12.06 times longer than the f
Марк Коренберг <socketp...@gmail.com> added the comment:
Note, TCP_NODELAY can not be set on UNIX streaming socket. Do you have
corresponding tests for UNIX sockets ?
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Марк Коренберг <socketp...@gmail.com> added the comment:
Also this:
http://potaroo.net/ietf/idref/draft-kitamura-ipv6-zoneid-free/
So, I'm confused. Will investigate.
--
___
Python tracker <rep...@bugs.python.org>
<https://
Марк Коренберг <socketp...@gmail.com> added the comment:
https://url.spec.whatwg.org/#host-representation -> Support for is
intentionally omitted.
https://tools.ietf.org/html/rfc6874
--
___
Python tracker <rep...@bugs.python
Марк Коренберг <socketp...@gmail.com> added the comment:
Please look at my PR
--
___
Python tracker <rep...@bugs.python.org>
<https://bugs.python
Change by Марк Коренберг <socketp...@gmail.com>:
--
keywords: +patch
pull_requests: +4758
stage: -> patch review
___
Python tracker <rep...@bugs.python.org>
<https://bugs.pyt
New submission from Марк Коренберг <socketp...@gmail.com>:
qwe = urlsplit('http://[FE80::822a:a8ff:fe49:470c%Тест]:1234/keys')
qwe.hostname will be 'fe80::822a:a8ff:fe49:470c%тест'
Which is wrong.
correct value is
'fe80::822a:a8ff:fe49:470c%Тест'
so, IP-address is lowercased and zone i
Change by Марк Коренберг <socketp...@gmail.com>:
--
keywords: +patch
pull_requests: +4631
stage: -> patch review
___
Python tracker <rep...@bugs.python.org>
<https://bugs.pyt
New submission from Марк Коренберг <socketp...@gmail.com>:
https://github.com/python/cpython/pull/4724
`recvfrom` from multicast socket is painfull slow. In fact, it returns sender
address in form:
`('fe80::941f:f6ff:fe04:c560%qwe', 42133, 0, 78)`
which is superfluous, since interfac
Марк Коренберг added the comment:
Well, it seems, you are right.
But there are another ioctls (maybe they are the same, I haven't checked):
FS_IOC_SETFLAGS
FS_IOC_GETFLAGS
http://man7.org/tlpi/code/online/book/files/chiflag.c.html (also attached)
--
Added file: http
New submission from Марк Коренберг:
Yes, chflags() is not supported by linux directly. But actually, Linux supports
chflags functionality:
https://stackoverflow.com/questions/34176464/why-os-chflags-doesnt-work-under-linux
through
ioctl (fd, EXT2_IOC_SETFLAGS, )
--
components
Марк Коренберг added the comment:
If I understand right, Python 3.5 will not be fixed with this pathc. Right ?
If yes, I will tell Debian maintainers to backport this patch to Python 3.5,
which is shipped with latest stable Debian 9.
--
___
Python
Марк Коренберг added the comment:
1. Yes, specifying argument to cancel in `raise CancelledError` would be perfect
2. specifying argument to `.cancel()` is still actual.
3. Yes, important part of exceptions should not be swallowed (please open
separate issue). Also, it will be nice to show
Марк Коренберг added the comment:
posix_fadvise() is also affected :(
Fixed in this patch.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
All checks passed.
Please merge.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue31106>
___
___
Марк Коренберг added the comment:
https://github.com/python/cpython/pull/3000
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Changes by Марк Коренберг <socketp...@gmail.com>:
--
pull_requests: +3036
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue31106>
___
Марк Коренберг added the comment:
Also, EINTR will not be caught too (!)
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue31106>
___
__
Марк Коренберг added the comment:
man posix_fallocate:
RETURN VALUE
posix_fallocate() returns zero on success, or an error number on failure. Note
that errno is not set.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.p
New submission from Марк Коренберг:
===
os.posix_fallocate(os.open('qwe.qwe', os.O_RDONLY|os.O_CREAT), 0, 1024*1024)
===
generates OSError with errno 0. Suppose this happen due to O_RDONLY flag.
strace :
open("qwe.qwe", O_RDONLY|O_CREAT|O_CLOEXEC, 0777) = 3
fallocate(3, 0,
Марк Коренберг added the comment:
Hmmm
task.set_exception(Exception('xxx'))
Will it cancel whole chain of depending futures in a RIGHT way ?
Or we must require exception passed here to be subclassed from CancelledError ?
--
___
Python tracker
Марк Коренберг added the comment:
Yes, I agree with you about my weird way of debugging. But anyway, changing API
with adding ability to pass actual cause would be welcome.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.p
New submission from Марк Коренберг:
Please document these two things:
* Order of callbacks firing is not specified. (Is it True?)
* All callbacks are called *BEFORE* await triggered:
f = asyncio.Future()
f.add_done_callback(xxx)
f.add_done_callback(yyy)
try:
await f
except
New submission from Марк Коренберг:
History:
First, I tried to debug code around asyncio.Task() cancelling. So I wrote:
=
try:
...
except Exception as e:
print(e)
=
When task was cancelled, an empty string printed. I wondered why. So I change
the code to
print(repr(e
Марк Коренберг added the comment:
Triggered almost the same error. Minimal proof:
Documentation did not say that .drain() can't be called simultaneously.
===
async def do_nothing(client_reader, client_writer):
await asyncio.sleep(1)
mb = b'*' * (4096*4
Марк Коренберг added the comment:
@vinay.sajip
I don't see this change in Python 3.5.3:
https://github.com/python/cpython/blob/v3.5.3/Lib/logging/handlers.py#L806
How can this be true?
--
___
Python tracker <rep...@bugs.python.org>
Changes by Марк Коренберг <socketp...@gmail.com>:
--
components: +asyncio
nosy: +yselivanov
versions: +Python 3.5
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python
New submission from Марк Коренберг:
How to reproduce: Run the following program:
=
import asyncio
async def handle_connection(reader, writer):
try:
await reader.readexactly(42)
except BaseException as err:
print('Interesting: %r.' % err
Марк Коренберг added the comment:
Yes, I want this simple patch to be back-ported. We use Python 3.5 in our
projects.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
Syslog, listening on local machine via UNIX socket.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
Nothing special. Just try to create SysLogHandler when syslog server is down.
Exception will be raised.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
New submission from Марк Коренберг:
Syslog handler already able to ignore temporary errors while seding logs. So he
knows that syslog server may be not reachable at the moment. But when we say
about constructor, it fails with error. I have fixed that -- now it will ignore
such errors, and try
Марк Коренберг added the comment:
@haypo, suppose, one thread wants file with permissions A, and other thread
wants permissions B. If they will "set" them through umask(), race condition
may occur.
--
___
Python tracker <rep...@bu
Марк Коренберг added the comment:
Such construction is not so easy. Especially for beginners. Not everyone even
uses context managers to work with files. They will try to use os.chmod(). More
clever will use os.fchmod(fileobj.fileno()). And in rare case someone asks
about race condition
Марк Коренберг added the comment:
so, io.open() should just pass that value down to implementation.
implementation should use this value instead of hard-coded 0o666.
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
I expect this:
open(, perms=0o644)
Why not?
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
Permissions -- are very important thing. As I think, such high-level functions
should not hide that important functionality from end-users.
Also, it is not difficult to make a patch (as I think).
--
___
Python
Марк Коренберг added the comment:
1. Yes, I'm reporting problem about standard open(), not os.open().
2. Yes, I know about umask. But unfortunatelly, umask affects whole process,
including all threads, so it is not possible to force specific permissions
without of race conditions with other
Changes by Марк Коренберг <socketp...@gmail.com>:
--
versions: +Python 3.7
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29214>
___
Changes by Марк Коренберг <socketp...@gmail.com>:
--
type: -> behavior
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29214>
___
_
New submission from Марк Коренберг:
1. Syscall open() allows that.
2. This is important to prevent race-conditions between creating a file with
default permissions and calling fchmod().
--
components: Library (Lib)
messages: 285044
nosy: mmarkk
priority: normal
severity: normal
status
Марк Коренберг added the comment:
1. I think, that is not a bug.
2. It seems, that for Cygwin, `> /dev/nul` is a bug, it should be `/dev/null`
does not it ?
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bug
Марк Коренберг added the comment:
> haypo added the check because people called `.call_later()` with coroutine
> instead of callback very often
maybe make dirty hack and check hasattr(callback, 'send') ?
--
nosy: +mmarkk
___
Python tracke
Марк Коренберг added the comment:
Typical network logging is using syslog UDP. Sending UDP is never block.
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Changes by Марк Коренберг <socketp...@gmail.com>:
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28518>
___
_
Марк Коренберг added the comment:
@r.david.murray
Please see answres at
https://groups.google.com/forum/#!topic/python-ideas/nPOi2LtVsR4
No one say that adding sorted containers is bad idea. Some people say that
specific use-cases require specific solutions, but they also said
Changes by Марк Коренберг <socketp...@gmail.com>:
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28430>
___
_
Марк Коренберг added the comment:
And also issue26877
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28436>
___
___
Python-bugs-
Марк Коренберг added the comment:
Also see issue16859
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28436>
___
___
Марк Коренберг added the comment:
Well, I created discussion at
https://groups.google.com/forum/#!topic/python-ideas/CoRe1gThnd8
--
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
Марк Коренберг added the comment:
https://groups.google.com/forum/#!searchin/python-ideas/sorted|sort:relevance/python-ideas/dy3Thu-PXSM/mTqEduXE4GYJ
?
@serhiy.storchaka did not rejected idea.
Anyway, I still can not find message in python-ideas which describe why such
idea may be rejected
New submission from Марк Коренберг:
I mean mutable containers that are always sorted when iterating over them.
i.e.
* SortedSet (sorted unique elements, implemented using (rb?)tree instead of
hash)
* SortedList (sorted elements, the same as SortedSet, but without uniquiness
constraint
Марк Коренберг added the comment:
It will be nice if someone also adds if abstract UNIX sockets are supported.
And also about bytes/str path support.
--
nosy: +mmarkk
___
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/i
1 - 100 of 385 matches
Mail list logo