prometheus-client-mmap 1.0.0-aarch64-linux → 1.0.1-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/fast_mmaped_file_rs/src/file_info.rs +51 -1
- data/lib/2.7/fast_mmaped_file_rs.so +0 -0
- data/lib/3.0/fast_mmaped_file_rs.so +0 -0
- data/lib/3.1/fast_mmaped_file_rs.so +0 -0
- data/lib/3.2/fast_mmaped_file_rs.so +0 -0
- data/lib/prometheus/client/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5702b81a0aa79918513d8222f84b71fda1ab7b00f39b5df9d4e32ad369549c2e
         | 
| 4 | 
            +
              data.tar.gz: ab7b247e166ec4a897a3429040c0955d70a232456cb36b5d616129c3b1d00e5a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 29aa9cfaa30c8b3e497529abfbce589ba992df6921e8690882ad3c18a33472fc8ad25b5fdc673e478db5d082777351c1ee25fb9c58ec412a563b6bbc13831b25
         | 
| 7 | 
            +
              data.tar.gz: 39d6948ef27afb5ce6207bb8621aa2db949dce1a03827463aa6db783fd05a4f58c5286c1cc5afb30e3deb7ca82048f227760f1e313afc8cd311038404f7ae0ed
         | 
| @@ -91,6 +91,11 @@ impl FileInfo { | |
| 91 91 |  | 
| 92 92 | 
             
                    match self.file.read_to_end(buf) {
         | 
| 93 93 | 
             
                        Ok(n) if n == self.len => Ok(()),
         | 
| 94 | 
            +
                        // A worker may expand the file between our `stat` and `read`, no harm done.
         | 
| 95 | 
            +
                        Ok(n) if n > self.len => {
         | 
| 96 | 
            +
                            self.len = n;
         | 
| 97 | 
            +
                            Ok(())
         | 
| 98 | 
            +
                        }
         | 
| 94 99 | 
             
                        Ok(_) => Err(MmapError::io(
         | 
| 95 100 | 
             
                            "read",
         | 
| 96 101 | 
             
                            &self.path,
         | 
| @@ -106,6 +111,8 @@ mod test { | |
| 106 111 | 
             
                use magnus::{eval, RArray, Symbol};
         | 
| 107 112 | 
             
                use rand::{thread_rng, Rng};
         | 
| 108 113 | 
             
                use sha2::{Digest, Sha256};
         | 
| 114 | 
            +
                use std::fs;
         | 
| 115 | 
            +
                use std::io::Write;
         | 
| 109 116 |  | 
| 110 117 | 
             
                use super::*;
         | 
| 111 118 | 
             
                use crate::testhelper::TestFile;
         | 
| @@ -165,7 +172,7 @@ mod test { | |
| 165 172 |  | 
| 166 173 | 
             
                    let mut info = FileInfo {
         | 
| 167 174 | 
             
                        file,
         | 
| 168 | 
            -
                        path,
         | 
| 175 | 
            +
                        path: path.clone(),
         | 
| 169 176 | 
             
                        len: buf.len(),
         | 
| 170 177 | 
             
                        multiprocess_mode: Symbol::new("puma"),
         | 
| 171 178 | 
             
                        type_: Symbol::new("max"),
         | 
| @@ -187,4 +194,47 @@ mod test { | |
| 187 194 |  | 
| 188 195 | 
             
                    assert_eq!(in_hash, out_hash, "content hashes");
         | 
| 189 196 | 
             
                }
         | 
| 197 | 
            +
             | 
| 198 | 
            +
                #[test]
         | 
| 199 | 
            +
                fn test_read_from_file_resized() {
         | 
| 200 | 
            +
                    let _cleanup = unsafe { magnus::embed::init() };
         | 
| 201 | 
            +
                    let ruby = magnus::Ruby::get().unwrap();
         | 
| 202 | 
            +
                    crate::init(&ruby).unwrap();
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                    const BUF_LEN: usize = 1 << 14; // 16KiB
         | 
| 205 | 
            +
             | 
| 206 | 
            +
                    // Create a buffer with random data.
         | 
| 207 | 
            +
                    let mut buf = vec![0u8; BUF_LEN];
         | 
| 208 | 
            +
                    thread_rng().fill(buf.as_mut_slice());
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                    let TestFile {
         | 
| 211 | 
            +
                        file,
         | 
| 212 | 
            +
                        path,
         | 
| 213 | 
            +
                        dir: _dir,
         | 
| 214 | 
            +
                    } = TestFile::new(&buf);
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                    let mut info = FileInfo {
         | 
| 217 | 
            +
                        file,
         | 
| 218 | 
            +
                        path: path.clone(),
         | 
| 219 | 
            +
                        len: buf.len(),
         | 
| 220 | 
            +
                        multiprocess_mode: Symbol::new("puma"),
         | 
| 221 | 
            +
                        type_: Symbol::new("max"),
         | 
| 222 | 
            +
                        pid: "worker-0_0".to_string(),
         | 
| 223 | 
            +
                    };
         | 
| 224 | 
            +
             | 
| 225 | 
            +
                    let mut resized_file = fs::OpenOptions::new()
         | 
| 226 | 
            +
                        .write(true)
         | 
| 227 | 
            +
                        .append(true)
         | 
| 228 | 
            +
                        .open(path)
         | 
| 229 | 
            +
                        .unwrap();
         | 
| 230 | 
            +
             | 
| 231 | 
            +
                    // Write data to file after it has been `stat`ed in the
         | 
| 232 | 
            +
                    // constructor.
         | 
| 233 | 
            +
                    resized_file.write_all(&[1; 1024]).unwrap();
         | 
| 234 | 
            +
             | 
| 235 | 
            +
                    let mut out_buf = Vec::new();
         | 
| 236 | 
            +
                    info.read_from_file(&mut out_buf).unwrap();
         | 
| 237 | 
            +
             | 
| 238 | 
            +
                    assert_eq!(BUF_LEN + 1024, info.len, "resized file updated len");
         | 
| 239 | 
            +
                }
         | 
| 190 240 | 
             
            }
         | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: prometheus-client-mmap
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.1
         | 
| 5 5 | 
             
            platform: aarch64-linux
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tobias Schmidt
         | 
| @@ -11,7 +11,7 @@ authors: | |
| 11 11 | 
             
            autorequire: 
         | 
| 12 12 | 
             
            bindir: bin
         | 
| 13 13 | 
             
            cert_chain: []
         | 
| 14 | 
            -
            date: 2023- | 
| 14 | 
            +
            date: 2023-12-04 00:00:00.000000000 Z
         | 
| 15 15 | 
             
            dependencies:
         | 
| 16 16 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 17 | 
             
              name: rb_sys
         |