mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Rojas" <alexan...@mesosphere.io>
Subject Re: Review Request 30032: Added support for cache control in libprocess when dealing with static files.
Date Thu, 16 Jul 2015 07:47:17 GMT


> On July 9, 2015, 9:19 p.m., Ben Mahler wrote:
> > 3rdparty/libprocess/src/process.cpp, lines 2815-2819
> > <https://reviews.apache.org/r/30032/diff/14/?file=986489#file986489line2815>
> >
> >     Any reason we didn't convert os::stat::mtime to return a Time?
> >     
> >     The only other user of os::stat::mtime does the same messy conversion:
> >     
> >     ```
> >     Future<Nothing> Slave::garbageCollect(const string& path)
> >     {
> >       Try<long> mtime = os::stat::mtime(path);
> >       if (mtime.isError()) {
> >         LOG(ERROR) << "Failed to find the mtime of '" << path
> >                    << "': " << mtime.error();
> >         return Failure(mtime.error());
> >       }
> >     
> >       // It is unsafe for testing to use unix time directly, we must use
> >       // Time::create to convert into a Time object that reflects the
> >       // possibly advanced state of the libprocess Clock.
> >       Try<Time> time = Time::create(mtime.get());
> >       CHECK_SOME(time);
> >     ```
> 
> Till Toenshoff wrote:
>     One reason could be that os::stat::mtime lives in stout whereas Time lives in libprocess,
no?

Till is right, it is the only reason. `os::stat::mtime` is part of stout while `Time` is part
of libprocess. We look into moving `Time` to stout, but there is a dependency to the clock
which forbids the transition.


> On July 9, 2015, 9:19 p.m., Ben Mahler wrote:
> > 3rdparty/libprocess/src/process.cpp, line 2833
> > <https://reviews.apache.org/r/30032/diff/14/?file=986489#file986489line2833>
> >
> >     Why did you need the {} here?

It initializes a struct to be zero. It is equivalent to do `memset(&clientMTime, 0, sizeof(clientMTime))`,
although my original patch called for using the more standard `= {0}` some previous reviewer
suggested to change it to the version in the patch.


> On July 9, 2015, 9:19 p.m., Ben Mahler wrote:
> > 3rdparty/libprocess/src/process.cpp, lines 2839-2846
> > <https://reviews.apache.org/r/30032/diff/14/?file=986489#file986489line2839>
> >
> >     Any reason to prefer -1 special cases here to just using Try<Time> and
handling errors?

-1 is the value returned in error by `std::mktime`. As mentioned before, we couldn't use `Time`.
Though it is possible to create a `Time` from a `time_t` initialized with `mktime`. I feel
it just adds more points of failure.


- Alexander


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/30032/#review91149
-----------------------------------------------------------


On June 17, 2015, 5:42 p.m., Alexander Rojas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/30032/
> -----------------------------------------------------------
> 
> (Updated June 17, 2015, 5:42 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Bernd Mathiske, Joerg Schad, Michael Park,
and Till Toenshoff.
> 
> 
> Bugs: mesos-708
>     https://issues.apache.org/jira/browse/mesos-708
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> When serving a static file, libprocess returns the header `Last-Modified` which is used
by browsers to control Cache.
> When a http request arrives containing the header `If-Modified-Since`, a response `304
Not Modified` is returned if the date in the request and the modification time (as returned
by doing `stat` in the file) coincide.
> Unit tests added.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/http.hpp e47cc7afbc8110759edf25a2dc05d09eda25c417

>   3rdparty/libprocess/src/process.cpp a67a3afdb30d23eb1b265b04ae662f64e874b6c6 
>   3rdparty/libprocess/src/tests/process_tests.cpp 660af45e7fd45bdf5d43ad9aa54477fd94f87058

> 
> Diff: https://reviews.apache.org/r/30032/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Alexander Rojas
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message