Every of the script is based on assumption that you already read some
library/unit whatever. But that is not enough. I wonder how you want to
detect that you need restart in case that I have something like this:

$ ls
foo.rb
bar.rb

$ cat foo.rb

def some_function
  require 'bar'
end

And now

1) I run some application, which loads my foo.rb file.
2) I later update the package which removes bar.rb file.
3) And I call some_function which fails due to missing bar.rb

There is no universal and reliable way how to detect this scenario IMO.


Vít



Dne 15.9.2014 10:06, Richard W.M. Jones napsal(a):
> On Mon, Sep 15, 2014 at 09:50:36AM +0200, Miroslav Suchý wrote:
>> On 09/12/2014 07:09 PM, Reindl Harald wrote:
>>> never worked relieable here on multiple machines
>>>
>>> it often showed nothing where i knew the thing
>>> which should be restarted without looking and
>>> "lsof" proved it
>> I am one of those guys who refuse to reboot after each upgrade (and
>> it works for me) and needs-restarting is ugly and insufficient to
>> me.
>>
>> Therefore I initiated this project:
>>   https://github.com/FrostyX/tracer
>>   http://copr.fedoraproject.org/coprs/frostyx/tracer/
>>
>> It is still not finished and ready for announcement, but if you are
>> looking for some other way than offline-upgrade, this might be worth
>> of participating.
> It wasn't clear to me how tracer works for non-C programs.
>
> However there was some Red Hat only discussion recently about how to
> do this for Python programs, with minimal overhead.  Below I'm just
> reproducing a technique (untested) that I think will work for Python.
>
> It requires a small patch to the Python interpreter, and a similar
> patch to any other language interpreters (eg. Perl, Ruby).
>
> Rich.
>
> -------
> For each module (*.py or *.pyc) that it imports, have it mmap the
> first page of that file into its memory.
>
> The mmap would be PROT_NONE because it's not actually used, and the
> associated file descriptor should be closed.
>
> This will appear in /proc/PID/maps, with a "(deleted)" flag if the
> underlying file gets deleted (and hence the process needs restarting).
>
> The cost should be almost nothing:
>
>  - 4K of virtual memory, no real memory   
>  - an extra mmap syscall on import
>  - an extra segment in the kernel's VM AVL  
> -------
>
> Rich.
>


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to