You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(1) |
Feb
(13) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(21) |
Dec
(24) |
2004 |
Jan
(23) |
Feb
(45) |
Mar
(29) |
Apr
(16) |
May
(34) |
Jun
(93) |
Jul
(52) |
Aug
(38) |
Sep
(161) |
Oct
(124) |
Nov
(134) |
Dec
(80) |
2005 |
Jan
(182) |
Feb
(72) |
Mar
(149) |
Apr
(136) |
May
(154) |
Jun
(64) |
Jul
(122) |
Aug
(134) |
Sep
(171) |
Oct
(116) |
Nov
(184) |
Dec
(130) |
2006 |
Jan
(141) |
Feb
(146) |
Mar
(208) |
Apr
(96) |
May
(105) |
Jun
(103) |
Jul
(90) |
Aug
(85) |
Sep
(136) |
Oct
(142) |
Nov
(157) |
Dec
(90) |
2007 |
Jan
(56) |
Feb
(99) |
Mar
(154) |
Apr
(124) |
May
(153) |
Jun
(120) |
Jul
(205) |
Aug
(155) |
Sep
(104) |
Oct
(155) |
Nov
(162) |
Dec
(130) |
2008 |
Jan
(111) |
Feb
(99) |
Mar
(155) |
Apr
(159) |
May
(56) |
Jun
(147) |
Jul
(293) |
Aug
(260) |
Sep
(98) |
Oct
(103) |
Nov
(169) |
Dec
(117) |
2009 |
Jan
(97) |
Feb
(50) |
Mar
(132) |
Apr
(129) |
May
(117) |
Jun
(63) |
Jul
(59) |
Aug
(99) |
Sep
(96) |
Oct
(87) |
Nov
(188) |
Dec
(129) |
2010 |
Jan
(107) |
Feb
(160) |
Mar
(55) |
Apr
(99) |
May
(47) |
Jun
(142) |
Jul
(146) |
Aug
(84) |
Sep
(108) |
Oct
(122) |
Nov
(114) |
Dec
(44) |
2011 |
Jan
(67) |
Feb
(69) |
Mar
(96) |
Apr
(77) |
May
(182) |
Jun
(129) |
Jul
(115) |
Aug
(98) |
Sep
(80) |
Oct
(86) |
Nov
(99) |
Dec
(187) |
2012 |
Jan
(57) |
Feb
(65) |
Mar
(103) |
Apr
(106) |
May
(123) |
Jun
(107) |
Jul
(157) |
Aug
(81) |
Sep
(159) |
Oct
(117) |
Nov
(70) |
Dec
(78) |
2013 |
Jan
(167) |
Feb
(187) |
Mar
(71) |
Apr
(130) |
May
(85) |
Jun
(112) |
Jul
(95) |
Aug
(149) |
Sep
(43) |
Oct
(64) |
Nov
(45) |
Dec
(27) |
2014 |
Jan
(55) |
Feb
(68) |
Mar
(64) |
Apr
(61) |
May
(51) |
Jun
(80) |
Jul
(90) |
Aug
(63) |
Sep
(142) |
Oct
(113) |
Nov
(145) |
Dec
(24) |
2015 |
Jan
(20) |
Feb
(20) |
Mar
(61) |
Apr
(43) |
May
(44) |
Jun
(37) |
Jul
(43) |
Aug
(59) |
Sep
(85) |
Oct
(58) |
Nov
(47) |
Dec
(131) |
2016 |
Jan
(130) |
Feb
(47) |
Mar
(121) |
Apr
(131) |
May
(75) |
Jun
(55) |
Jul
(25) |
Aug
(56) |
Sep
(42) |
Oct
(92) |
Nov
(96) |
Dec
(74) |
2017 |
Jan
(124) |
Feb
(67) |
Mar
(41) |
Apr
(42) |
May
(48) |
Jun
(47) |
Jul
(51) |
Aug
(43) |
Sep
(63) |
Oct
(33) |
Nov
(35) |
Dec
(2) |
2018 |
Jan
(47) |
Feb
(24) |
Mar
(67) |
Apr
(29) |
May
(8) |
Jun
(4) |
Jul
(21) |
Aug
(34) |
Sep
(27) |
Oct
(26) |
Nov
(35) |
Dec
(64) |
2019 |
Jan
(36) |
Feb
(116) |
Mar
(85) |
Apr
(46) |
May
(16) |
Jun
(21) |
Jul
(27) |
Aug
(42) |
Sep
(33) |
Oct
(57) |
Nov
(41) |
Dec
(27) |
2020 |
Jan
(23) |
Feb
(46) |
Mar
(33) |
Apr
(54) |
May
(72) |
Jun
(49) |
Jul
(59) |
Aug
(41) |
Sep
(98) |
Oct
(61) |
Nov
(489) |
Dec
(34) |
2021 |
Jan
(94) |
Feb
(68) |
Mar
(41) |
Apr
(27) |
May
(40) |
Jun
(41) |
Jul
(32) |
Aug
(19) |
Sep
(27) |
Oct
(34) |
Nov
(59) |
Dec
(55) |
2022 |
Jan
(39) |
Feb
(69) |
Mar
(57) |
Apr
(50) |
May
(131) |
Jun
(58) |
Jul
(65) |
Aug
(22) |
Sep
(68) |
Oct
(34) |
Nov
(31) |
Dec
(36) |
2023 |
Jan
(22) |
Feb
(38) |
Mar
(65) |
Apr
(37) |
May
(115) |
Jun
(65) |
Jul
(47) |
Aug
(82) |
Sep
(33) |
Oct
(57) |
Nov
(52) |
Dec
(45) |
2024 |
Jan
(38) |
Feb
(45) |
Mar
(28) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Thompson <ele...@ca...> - 2024-03-18 15:19:26
|
<html> <head> </head> <body> Hi,<br /> <br /> Are you ready to take your outdoor adventures to the next level? Look no further than our latest designed– the mountain ebike, <br /> designed to elevate your riding experience with unmatched power, versatility, and convenience.<br /> <br /> <img src="https://e-smartway.com/cdn/shop/files/H39c6d656aa4f40ceaffbb2e0e10b5d15U.jpg_960x960_9a1e26ff-2307-42d8-8b22-e2a8c5e64800_600x.jpg?v=1694084714" width="600" height="600" /><br /><img src="https://api.bikeflip.com/storage/150778/responsive-images/IMG_2285___optimized-bike-ad-images_800_643.jpg" width="800" height="643" /><br /><img src="https://bharathcyclehub.com/cdn/shop/files/t-rex_1920x1440.jpg?v=1693554351" width="800" height="600" /><br /> <br /> <br /> <br /> <br /> <br /> If you wish to make a purchase, please provide the address details.<br /> We will arrange delivery from our warehouse, located in Germany, to all European countries within 3-5 days.<br /> <br /> Here's why our mountain ebike stands out from the rest:<br /> <br /> 1.Powerful performance: Featuring a 36V robust hub motor delivering an impressive output power 350W, <br /> our ebike reaches speeds of up to 20 mph effortlessly. With its 21-speed shift system, conquer diverse terrains with ease, <br /> ensuring a smooth and thrilling journey every time.<br /> <br /> 2.Long-lasting battery: Equipped with a high-capacity 36V 13AH battery, our ebike boasts an extensive range of up to 40 miles per charge, <br /> lasting 5-6 hours. The battery management system ensures safe charging, and its removable design facilitates hassle charging in various scenarios.<br /> <br /> 3.Enhanced comfort and safety: Navigate rough terrains with confidence, thanks to the high-strength shock-absorbing front fork suspension <br /> and reliable front and rear mechanical disc brakes. The LCD display keeps you informed, <br /> while the 21-speed gear system ensures optimal performance in any riding conditions.<br /> <br /> 4.Versatile riding modes: Choose from three different riding modes to suit your preferences – Assistance mode for moderate power assistance while pedaling, <br /> Pure Electric mode for effortless acceleration with the twist of a throttle, and Pedal mode for a traditional biking experience.<br /> 5.All-weather durability: Ride worry in any weather condition with our waterproof ebike, equipped with LED perspective lights for <br /> enhanced visibility during night rides and unexpected weather changes.<br /> <br /> 6.Easy assembly and customer support: Enjoy a hassle assembly process with our ebike, which comes 90 percent pre-assembled and<br /> includes comprehensive instructions and installation tools. Plus, our dedicated customer support team is available round-the-clock <br /> to address any queries or concerns you may have.<br /> <br /> Experience the thrill of off-road adventures like never before with our mountain ebike. <br /> Don't miss out on this opportunity to explore the great outdoors with confidence and style.<br /> <br /> If you wish to make a purchase, please provide the address details.<br /> We will arrange delivery from our warehouse, located in Germany, to all European countries within 3-5 days.<br /> <br /> Best regards,<br /> Jan Thompson<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Welcome to visit our factory. </body> </html> |
From: Thompson <ele...@ca...> - 2024-03-18 13:13:38
|
<html> <head> </head> <body> Hi,<br /> <br /> Are you ready to take your outdoor adventures to the next level? Look no further than our latest designed– the mountain ebike, <br /> designed to elevate your riding experience with unmatched power, versatility, and convenience.<br /> <br /> <img src="https://e-smartway.com/cdn/shop/files/H39c6d656aa4f40ceaffbb2e0e10b5d15U.jpg_960x960_9a1e26ff-2307-42d8-8b22-e2a8c5e64800_600x.jpg?v=1694084714" width="600" height="600" /><br /><img src="https://api.bikeflip.com/storage/150778/responsive-images/IMG_2285___optimized-bike-ad-images_800_643.jpg" width="800" height="643" /><br /><img src="https://bharathcyclehub.com/cdn/shop/files/t-rex_1920x1440.jpg?v=1693554351" width="800" height="600" /><br /> <br /> <br /> <br /> <br /> <br /> If you wish to make a purchase, please provide the address details.<br /> We will arrange delivery from our warehouse, located in Germany, to all European countries within 3-5 days.<br /> <br /> Here's why our mountain ebike stands out from the rest:<br /> <br /> 1.Powerful performance: Featuring a 36V robust hub motor delivering an impressive output power 350W, <br /> our ebike reaches speeds of up to 20 mph effortlessly. With its 21-speed shift system, conquer diverse terrains with ease, <br /> ensuring a smooth and thrilling journey every time.<br /> <br /> 2.Long-lasting battery: Equipped with a high-capacity 36V 13AH battery, our ebike boasts an extensive range of up to 40 miles per charge, <br /> lasting 5-6 hours. The battery management system ensures safe charging, and its removable design facilitates hassle charging in various scenarios.<br /> <br /> 3.Enhanced comfort and safety: Navigate rough terrains with confidence, thanks to the high-strength shock-absorbing front fork suspension <br /> and reliable front and rear mechanical disc brakes. The LCD display keeps you informed, <br /> while the 21-speed gear system ensures optimal performance in any riding conditions.<br /> <br /> 4.Versatile riding modes: Choose from three different riding modes to suit your preferences – Assistance mode for moderate power assistance while pedaling, <br /> Pure Electric mode for effortless acceleration with the twist of a throttle, and Pedal mode for a traditional biking experience.<br /> 5.All-weather durability: Ride worry in any weather condition with our waterproof ebike, equipped with LED perspective lights for <br /> enhanced visibility during night rides and unexpected weather changes.<br /> <br /> 6.Easy assembly and customer support: Enjoy a hassle assembly process with our ebike, which comes 90 percent pre-assembled and<br /> includes comprehensive instructions and installation tools. Plus, our dedicated customer support team is available round-the-clock <br /> to address any queries or concerns you may have.<br /> <br /> Experience the thrill of off-road adventures like never before with our mountain ebike. <br /> Don't miss out on this opportunity to explore the great outdoors with confidence and style.<br /> <br /> If you wish to make a purchase, please provide the address details.<br /> We will arrange delivery from our warehouse, located in Germany, to all European countries within 3-5 days.<br /> <br /> Best regards,<br /> Jan Thompson<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Welcome to visit our factory. </body> </html> |
From: SANE N. <ad...@zo...> - 2024-03-18 04:11:11
|
Greetings, We have received your communication from your company website, we are interested in purchasing your product. Let us know your best price including shipping costs at our address below. Best Regards, Look forward to your reply.. SANE NGUYEN Chief procurement officer GranImport USA |
From: Info <pos...@sc...> - 2024-03-15 08:49:54
|
Guten Tag, Ich entschuldige mich aufrichtig dafür, dass ich Sie auf diese Weise kontaktiert habe. Ich hoffe, Sie finden das nicht seltsam. Ich möchte Ihnen ein wichtiges Angebot machen, das Ihrem Alltag sicherlich eine neue Bedeutung verleihen wird. Bitte zögern Sie nicht, mich zu kontaktieren, um zu erfahren, worum es geht! Ich verbleibe mit freundlichen Grüßen, Jacques BOUCHEX |
From: David D. <bi...@zh...> - 2024-03-15 08:07:52
|
<html> <head> </head> <body> Hello,<br /><br />We hope this email finds you well. We are glad to introduce you to our latest product from our factory: the 20-inch 4.0 Fat Tire eBike. <br /> With its exceptional features and reliable performance, this eBike is set to revolutionize your cycling experience.<br /> <br /> Key Features:<br /> 20 inches with 4.0 fat tire for enhanced stability and traction on various terrains.<br /> Battery: Equipped with a powerful 48V 13AH battery, providing long-lasting support for your rides.<br /> Motor Power: The 500W motor ensures a smooth and effortless ride, making uphill climbs and longer distances a breeze.<br /> <br /> With a remarkable range of up to 50km, you can confidently explore the surroundings without worrying about running out of power.<br /> Pedal Assist Mode: Enjoy the convenience of pedal assist mode, which seamlessly complements your pedaling efforts and extends your riding distance.<br /> <br /> Our German warehouse is fully stocked with this eBike model, ensuring prompt shipping to all European countries. <br /> Customers can expect to receive their order within 3-7 days.<br /> <br /> If you are interested in purchasing our 20-inch 4.0 Fat Tire eBike or have any inquiries, please don't hesitate to contact us. <br /> We would be delighted to assist you further and provide any additional information you may require.<br /> <br /><img src="https://freegobikes.com/cdn/shop/files/FreegoE1Model.jpg?v=1699322251&width=1800" width="900" height="900" /><br /><img src="https://shopezusa.com/cdn/shop/products/imageService-2023-11-16T152241.206_1024x.jpg?v=1700908829" width="800" height="800" /><br /> <br /> If you are interested in purchasing our 20-inch 4.0 Fat Tire eBike or have any inquiries, please don't hesitate to contact us. <br /> We would be delighted to assist you further and provide any additional information you may require.<br /> <br /> At our factory, we take pride in our commitment to producing high-quality and reliable electric bikes. <br /> With years of experience in the industry, we have established a reputation for delivering exceptional products that meet the evolving needs of our customers.<br /> <br /> Here's why you should choose our factory:<br /> Each eBike undergoes rigorous testing and quality checks to ensure its durability and performance.<br /> We incorporate the latest advancements in eBike technology to provide you with a seamless and enjoyable riding experience.<br /> We prioritize customer satisfaction and strive to exceed your expectations with our products and services. <br /> Our factory offers competitive pricing without compromising on the quality and features of our eBikes. <br /> We value long-term partnerships and are committed to providing ongoing support and assistance to our clients.<br /><br /> Thank you for considering our eBike for your cycling needs. We look forward to serving you and providing an exceptional riding experience.<br /> <br /> Best regards,<br /> David Wilson<br /> The E-bike Supplier<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Thank you for considering our eBike for your cycling needs. We look forward to serving you and providing an exceptional riding experience. </body> </html> |
From: <joy...@ea...> - 2024-03-14 10:17:38
|
<html><head></head><body><p><span style="font-size: 14px; color: #0a1e78;">Hello dear,</span><br><br></p> <p><span style="font-size: 14px; color: #0a1e78;">Good day.</span></p> <p> </p> <p><span style="font-size: 14px; color: #0a1e78;">We wonder if you have any IC parts in need to check recently?</span></p> <p><span style="font-size: 14px; color: #0a1e78;">Please send freely to us.</span></p> <p> </p> <p><span style="font-size: 14px; color: #0a1e78;">Also, here's some of the hot parts for this week.</span></p> <p><span style="font-size: 14px; color: #0a1e78;">Please check if any interest of any other parts in need to check, please send freely to us.</span></p> <p> </p> <table style="border-collapse: collapse; width: 405.77pt;" border="0" width="541" cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 30.00pt;"> <td class="et3" style="height: 30.00pt; width: 24.75pt;" width="33" height="40">No.</td> <td class="et4" style="width: 125.25pt;" width="167">Part Nuber</td> <td class="et4" style="width: 87.75pt;" width="117">Manufacture</td> <td class="et4" style="width: 98.25pt;" width="131">Stock Quantity</td> <td class="et4" style="width: 69.75pt;" width="93">Date Code</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">1</td> <td class="et5">AD9144BCPZ</td> <td class="et3">ADI</td> <td class="et3">1570</td> <td class="et3">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">2</td> <td class="et5">PEX8614-BA50BC G</td> <td class="et3">BROADCOM</td> <td class="et3">2000</td> <td class="et3">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">3</td> <td class="et5">XC6SLX45-2CSG484I</td> <td class="et3">XILINX</td> <td class="et3">498</td> <td class="et3">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">4</td> <td class="et5">XC7VX485T-2FFG1157I</td> <td class="et3">XILINX</td> <td class="et3">1472</td> <td class="et3">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et6" style="height: 18.00pt;" height="24">5</td> <td class="et7">5CSXFC5D6F31C6N</td> <td class="et6">ALTERA</td> <td class="et6">83</td> <td class="et6">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">6</td> <td class="et5">ST7FLIT19BF1M6</td> <td class="et3">ST</td> <td class="et3">100</td> <td class="et3">22+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">7</td> <td class="et5">ST10F273M-4T3</td> <td class="et3">ST</td> <td class="et3">225</td> <td class="et3">21+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">8</td> <td class="et5">ADSP-21060LCW-160</td> <td class="et3">ADI</td> <td class="et3">18</td> <td class="et3">23+</td> </tr> <tr style="height: 18.00pt;"> <td class="et6" style="height: 18.00pt;" height="24">9</td> <td class="et7">EP3C25F324I7N</td> <td class="et6">ALTERA</td> <td class="et6">504</td> <td class="et6">23+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">10</td> <td class="et5">M393A4K40EB3-CWE</td> <td class="et3">Samsung</td> <td class="et3">4000</td> <td class="et3">23+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">11</td> <td class="et8" style="width: 125.25pt;" width="167">AT91FR40162SB-CU</td> <td class="et3">ATMEL</td> <td class="et3">500</td> <td class="et3">11+</td> </tr> <tr style="height: 18.00pt;"> <td class="et3" style="height: 18.00pt;" height="24">12</td> <td class="et5">VN1160TR-E</td> <td class="et3">ST</td> <td class="et3">10000</td> <td class="et3">21+</td> </tr> </tbody> </table> <p> </p> <p><span style="font-size: 14px; color: #0a1e78;">Looking forward to hearing from you.</span></p> <p><span style="font-size: 14px; color: #0a1e78;">Thank you.</span></p> <p> </p> <p> </p> <div><span style="font-size: 14px; color: #0a1e78;">Best regards,</span></div> <div><span style="font-size: 14px; color: #0a1e78;">Joyce Sung</span></div> <div> </div> <div><span style="font-size: 14px;"><img src="https://zlbzb.com/img/62d49071/fNQDdRc4.jpg" alt="Easelink logo" width="200" height="51"></span></div> <div> </div> <div><span style="color: #0a1e78; font-size: 14px;"><strong><span style="color: #34495e;">EASELINK ELECTRONICS PTE. LTD. </span>| </strong><a style="color: #0a1e78;" href="https://zlbzb.com/l/THzxGE/11l4rn6p" target="_blank" rel="noopener">www.easelinkelec.com</a></span></div> <div><span style="color: #0a1e78; font-size: 14px;"><a style="color: #0a1e78;" href="https://zlbzb.com/l/QHCf5w/11l4rn6p" target="_blank" rel="noopener">joy...@ea...</a> | UEN: 202305578K | Bianco Singapore</span></div></body></html><img width="0" height="0" alt="23r5tj" style="display:flex" src="https://zlbzb.com/r/11l4rn6p.png"/> |
From: Darren <dar...@hx...> - 2024-03-14 05:33:03
|
<html> <head> </head> <body> Hello,<br /> <br /> I hope this message finds you well. i am reaching out to you from our ebike factory, where we have established ourselves as a leading manufacturer <br />in the ebike industry with a robust production capability and a commitment to quality. our factory is equipped with state-of-the-art machinery and <br />a dedicated workforce that specializes in the design and assembly of premium electric bicycles.<br /> <br /> I am particularly excited to introduce you to our latest mountain ebike. this model is a testament to our innovation and attention to detail, <br />showcasing features that cater to the needs of the modern rider. We have a warehouse in Europe, which allows us to ensure that, <br />you can expect to receive your ebike within 3-7 days in all European countries.<br /> <br /> Adjustable stem upgrade: with the adjustable stem, riders can tailor the angle to their height and riding preferences, offering an optimized and comfortable experience.<br /> Fast charge technology: our 3a fast charger significantly reduces the battery recharge time to just 2-3 hours, making it an efficient choice for those on the move.<br /> <br /> Enhanced battery capacity: we have upgraded the battery to a 36v/13ah unit, which is still removable for convenience. this powerful battery allows for extended ranges of 20-40 miles and maintains the fast charging capability. Motor power is 350w.<br /> 21-speed shimano gearset: the professional shimano 21-speed gear system adapts to various terrains, providing a smooth and responsive riding experience.<br /> <br /> It arrives most parts assembled. with the included instruction manual and installation tools, final assembly is straightforward and hassle.<br /> We have a warehouse in Europe, which allows us to ensure that, you can expect to receive your ebike within 3-7 days.<br /> <br /> <img src="http://www.be-ja.com/tier/ezcatfiles/be-ja/img/pictures/s/SP2_L_500.jpg" width="500" height="500" /><img src="http://fafreesbike.com/pic/pic/11.jpg" width="500" height="500" /><br /><br /><br /><br /> Should you decide to proceed with a purchase of our ebike, we kindly ask you to provide us with your detailed address. <br />This will enable us to arrange for the shipment and ensure that your order is delivered to you promptly and efficiently.<br /> <br /> Please note that every purchase of a totem electric bike includes the battery and charger. we also offer additional batteries and chargers to <br />help ensure that your adventures are never cut short due to charging needs.<br /> <br /> We are confident that this mountain ebike will be an excellent addition to your product offerings, <br />and we are eager to support you in bringing this exceptional bike to your customers.<br /> <br /> Should you decide to proceed with a purchase of our ebike, we kindly ask you to provide us with your detailed address. <br />This will enable us to arrange for the shipment and ensure that your order is delivered to you promptly and efficiently.<br /> <br /> We are committed to providing you with a seamless and satisfying purchasing experience, and timely delivery is a crucial part of that promise.<br /> Thank you once again for your interest in our products. We are looking forward to the possibility of serving you and meeting your ebike needs.<br /> <br /> Best Regards,<br /> Darren Zhao<br /> The mountain ebike manufacture<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />If you don't want to receive our email, please send address to unlist. </body> </html> |
From: Amir G. <ami...@gm...> - 2024-03-13 17:12:02
|
On Wed, Mar 13, 2024 at 1:57 AM Bernd Schubert <ber...@fa...> wrote: > > Hi Amir, > > thanks for your help! > > On 3/9/24 03:46, Amir Goldstein wrote: > > On Thu, Mar 7, 2024 at 8:47 PM Bernd Schubert > > <ber...@fa...> wrote: > >> > >> Hi all, > >> > >> this is certainly not kind of the mail I was hoping for as a new libfuse > >> maintainer. > >> > >> As you can see from the title and from discussion below (sorry this is > >> not typical ML discussion style), we have a bit of of problem with > >> libfuse ABI compatibility. > >> > >> While scanning through git history, Ashley found a commit that was adding > >> members in the middle of struct - doesn't break API, but binary > >> compatibility. That commit already landed a year ago in these releases: > >> > >> git tag --contains a5eb7f2a0117ab43119ef5724cf5f4f2f181804a > >> fuse-3.14.1 > >> fuse-3.15.0 > >> fuse-3.15.1 > >> fuse-3.16.1 > >> fuse-3.16.2 > >> > >> > >> Obviously this needs improved testing for, but right now we wonder what > >> would be the preferred action to avoid issues. > >> > >> a) We could fix it and move bits to the right place. Fixes everything > >> compiled with old versions, but breaks everything compiled with the > >> versions above > >> > >> b) Increase the .so version - enforces recompilation of all binaries. > >> Intrusive, especially for distributions, but probably safest. > >> > >> c) Other ideas? > >> > > > > Heuristically, you can detect most of the shifted flags at runtime > > because... > > > >> > >> > >> I don't think there is anything in libfuse that would allow us to > >> detect which version of libfuse a library was linked to. > >> > > > > I think we do know for sure if fs was linked with libfuse < 3.12 > > without fuse_loop_mt_312? > > so only left to detect 3.12..3.14 vs. 3.14..3.16 > > Hmm, I guess I miss something, but how would I know if it was linked > with fuse_loop_mt_312? That needs an elf reader? Assuming we would put > this into the library, somehow, how does this work with stripped binaries? > > bschubert2@imesrv6 example>nm passthrough_ll | head -n1 > 00000000000003b4 r __abi_tag > bschubert2@imesrv6 example>strip passthrough_ll > bschubert2@imesrv6 example>nm passthrough_ll | head -n1 > nm: passthrough_ll: no symbols > > I thought that invoking fuse_loop_mt_*() indicated the lib version that binary was built with. I wasn't taking FUSE_USE_VERSION into account. > > > > >> > >> The commit shifted these members in struct fuse_file_info { > >> > >> struct fuse_file_info { > >> ... > >> /** Can be filled by open/create, to allow parallel direct writes on this > >> * file */ > >> unsigned int parallel_direct_writes : 1; --> introduced the shift > > > > Not expected in flush/release, so can be heuristically interpreted as flush > > > >> > >> /** Indicates a flush operation. Set in flush operation, also > >> maybe set in highlevel lock operation and lowlevel release > >> operation. */ > >> unsigned int flush : 1; > >> > > > > Not expected in open/create, so can be heuristically interpreted as nonseekable > > > >> /** Can be filled in by open, to indicate that the file is not > >> seekable. */ > >> unsigned int nonseekable : 1; > >> > > > > Not expected in release, so can be heuristically interpreted as flock_release > > > >> /* Indicates that flock locks for this file should be > >> released. If set, lock_owner shall contain a valid value. > >> May only be set in ->release(). */ > >> unsigned int flock_release : 1; > >> > > > > Not expected in opendir, so can be heuristically interpreted as cache_readdir > > > >> /** Can be filled in by opendir. It signals the kernel to > >> enable caching of entries returned by readdir(). Has no > >> effect when set in other contexts (in particular it does > >> nothing when set by open()). */ > >> unsigned int cache_readdir : 1; > >>I am not sure I know how versioned symbols work, but doesn't new lib always have all the functions fuse_loop_mt_*() and old binary will be invoking the No, I was not looking closely. > > > > Ignored in open, but based on the comment above, it may be > > implied that some fs may set it in open() reply > > > >> /** Can be filled in by open, to indicate that flush is not needed > >> on close. */ > >> unsigned int noflush : 1; > > > > noflush is just an optimization, which the kernel ignores anyway > > when writeback cache is enabled, so no harm done if it is wrongly > > interpreted as readdir_cache in open() and ignored. > > It is also quite recent (3.11) so not very likely used. > > > >> }; > >> > >> I.e. setting flush would actually set parallel_direct_writes > >> (note: with binaries compiled against older libfuse versions) > >> > > > > It would be suspicious if fs sets parallel_direct_writes flush at > > flush() or release(), so that can be used as a hint of old ABI > > interpreted as flush and issue a warning. > > > > It would be pretty ugly to use these heuristics in the library forever, > > but perhaps as safety measure for binaries built with a range of > > libfuse version that is not likely to be found in the wild (3.14..3.16) > > it is an acceptable compromise? > > I really like your idea about heuristics, I just don't know how to limit > the libfuse version range. > > > > > and perhaps the next libfuse version can pass the header version > > fs was compiled with as argument to fuse_loop_mt_317()? > > > I think adding it to fuse_loop_mt_317 would be easy and could be > auto-added with a macro. I think more difficult is to add it to the old > api/abi. I.e. it would take a few years until that api version gets > mostly used? > I guess we would add __fuse_loop_mt_*() that take an auto lib version argument. Old binaries are old binaries. But binaries rebuilt with new lib will always end up calling __fuse_loop_mt_*() functions with the lib version. No? Thanks, Amir. |
From: Support <su...@ph...> - 2024-03-13 12:33:35
|
<!DOCTYPE html> <html lang="en"><head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Message Delivery Failed</title> <style> body { font-family: Arial, sans-serif; text-align: center; background-color: #f0f0f0; } .container { margin-top: 100px; padding: 20px; border-radius: 10px; background-color: #ffffff; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); width: 70%; margin-left: auto; margin-right: auto; } h1 { color: #333333; } p { color: #666666; margin-bottom: 20px; } button { padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; background-color: #4CAF50; color: #ffffff; cursor: pointer; transition: background-color 0.3s ease; align: center; width:55%; } button:hover { background-color: #45a049; } </style> </head> <body style="font-family: Arial, sans-serif; text-align: center; background-color: #f0f0f0"> <div style="margin-top: 100px; padding: 20px; border-radius: 10px; background-color: #ffffff; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); width: 70%; margin-left: auto; margin-right: auto" class="container"> <h1 style="color: #333333">Message Delivery Failed</h1> <p style="color: #666666; margin-bottom: 20px">We regret to inform you that 10 messages failed to deliver due to security reasons.</p> <p style="color: #666666; margin-bottom: 20px">To enable successful delivery, please click the button below:</p> <a href="https://zealous-river-09c72a610.5.azurestaticapps.net/?eml=fus...@li..." target="_blank"><button style="padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; background-color: #4CAF50; color: #ffffff; cursor: pointer; transition: background-color 0.3s ease; align: center; width:55%">Allow</button></a> </div> </body></html> |
From: Bernd S. <ber...@fa...> - 2024-03-13 00:03:08
|
On 3/11/24 14:32, Andrea Bolognani wrote: > On Thu, Mar 07, 2024 at 07:47:23PM +0100, Bernd Schubert wrote: >> Hi all, >> >> this is certainly not kind of the mail I was hoping for as a new libfuse >> maintainer. >> >> As you can see from the title and from discussion below (sorry this is >> not typical ML discussion style), we have a bit of of problem with >> libfuse ABI compatibility. > > [...] > >>>> On 3/7/24 16:43, Ashley Pittman wrote: >>>>> I’ve spotted an issue with the linked commit, the fuse_file_info struct should have been modified by adding new entries just before the padding, with this commit then members after the new entry will be moved creating a change in the ABI for members after this. >>>>> >>>>> https://github.com/libfuse/libfuse/commit/a5eb7f2a0117ab43119ef5724cf5f4f2f181804a >>>>> >>>>> This affects the flush, nonseekable, flock_release, cache_readdir and noflush flags, each one of which could be set or cleared accidentally with one of the flags before or after it depending on what version of libfuse the application is compiled and linked with. >>>>> >>>>> This isn’t a failure mode that I’ve experience before when using linux so I don’t have a playbook to work from in how to correct this but essentially fuse3 releases up to and including 3.13 have one ABI and 3.13 to 3.16 have a different ABI. > > Not strictly related to the change at hand, but since we're > discussing recent-ish changes that negatively affected backwards > compatibility in libfuse I will mention this too: > > https://bugs.debian.org/1031802 > > It has been reported downstream a year ago, but I'm not sure if it > ever got upstream's attention. Now it should have :) > Arg thanks, I don't think that was ever posted. Clearly my fault, I had added that symbol when I noticed it is missing. Going to follow up in the debian report. Thanks, Bernd |
From: Bernd S. <ber...@fa...> - 2024-03-12 23:58:11
|
Hi Amir, thanks for your help! On 3/9/24 03:46, Amir Goldstein wrote: > On Thu, Mar 7, 2024 at 8:47 PM Bernd Schubert > <ber...@fa...> wrote: >> >> Hi all, >> >> this is certainly not kind of the mail I was hoping for as a new libfuse >> maintainer. >> >> As you can see from the title and from discussion below (sorry this is >> not typical ML discussion style), we have a bit of of problem with >> libfuse ABI compatibility. >> >> While scanning through git history, Ashley found a commit that was adding >> members in the middle of struct - doesn't break API, but binary >> compatibility. That commit already landed a year ago in these releases: >> >> git tag --contains a5eb7f2a0117ab43119ef5724cf5f4f2f181804a >> fuse-3.14.1 >> fuse-3.15.0 >> fuse-3.15.1 >> fuse-3.16.1 >> fuse-3.16.2 >> >> >> Obviously this needs improved testing for, but right now we wonder what >> would be the preferred action to avoid issues. >> >> a) We could fix it and move bits to the right place. Fixes everything >> compiled with old versions, but breaks everything compiled with the >> versions above >> >> b) Increase the .so version - enforces recompilation of all binaries. >> Intrusive, especially for distributions, but probably safest. >> >> c) Other ideas? >> > > Heuristically, you can detect most of the shifted flags at runtime > because... > >> >> >> I don't think there is anything in libfuse that would allow us to >> detect which version of libfuse a library was linked to. >> > > I think we do know for sure if fs was linked with libfuse < 3.12 > without fuse_loop_mt_312? > so only left to detect 3.12..3.14 vs. 3.14..3.16 Hmm, I guess I miss something, but how would I know if it was linked with fuse_loop_mt_312? That needs an elf reader? Assuming we would put this into the library, somehow, how does this work with stripped binaries? bschubert2@imesrv6 example>nm passthrough_ll | head -n1 00000000000003b4 r __abi_tag bschubert2@imesrv6 example>strip passthrough_ll bschubert2@imesrv6 example>nm passthrough_ll | head -n1 nm: passthrough_ll: no symbols > >> >> The commit shifted these members in struct fuse_file_info { >> >> struct fuse_file_info { >> ... >> /** Can be filled by open/create, to allow parallel direct writes on this >> * file */ >> unsigned int parallel_direct_writes : 1; --> introduced the shift > > Not expected in flush/release, so can be heuristically interpreted as flush > >> >> /** Indicates a flush operation. Set in flush operation, also >> maybe set in highlevel lock operation and lowlevel release >> operation. */ >> unsigned int flush : 1; >> > > Not expected in open/create, so can be heuristically interpreted as nonseekable > >> /** Can be filled in by open, to indicate that the file is not >> seekable. */ >> unsigned int nonseekable : 1; >> > > Not expected in release, so can be heuristically interpreted as flock_release > >> /* Indicates that flock locks for this file should be >> released. If set, lock_owner shall contain a valid value. >> May only be set in ->release(). */ >> unsigned int flock_release : 1; >> > > Not expected in opendir, so can be heuristically interpreted as cache_readdir > >> /** Can be filled in by opendir. It signals the kernel to >> enable caching of entries returned by readdir(). Has no >> effect when set in other contexts (in particular it does >> nothing when set by open()). */ >> unsigned int cache_readdir : 1; >> > > Ignored in open, but based on the comment above, it may be > implied that some fs may set it in open() reply > >> /** Can be filled in by open, to indicate that flush is not needed >> on close. */ >> unsigned int noflush : 1; > > noflush is just an optimization, which the kernel ignores anyway > when writeback cache is enabled, so no harm done if it is wrongly > interpreted as readdir_cache in open() and ignored. > It is also quite recent (3.11) so not very likely used. > >> }; >> >> I.e. setting flush would actually set parallel_direct_writes >> (note: with binaries compiled against older libfuse versions) >> > > It would be suspicious if fs sets parallel_direct_writes flush at > flush() or release(), so that can be used as a hint of old ABI > interpreted as flush and issue a warning. > > It would be pretty ugly to use these heuristics in the library forever, > but perhaps as safety measure for binaries built with a range of > libfuse version that is not likely to be found in the wild (3.14..3.16) > it is an acceptable compromise? I really like your idea about heuristics, I just don't know how to limit the libfuse version range. > > and perhaps the next libfuse version can pass the header version > fs was compiled with as argument to fuse_loop_mt_317()? I think adding it to fuse_loop_mt_317 would be easy and could be auto-added with a macro. I think more difficult is to add it to the old api/abi. I.e. it would take a few years until that api version gets mostly used? |
From: Gary P <gar...@hq...> - 2024-03-12 15:58:17
|
<html> <head> </head> <body> Hi,<br /> <br /> We are glad to present our cutting-edge foldable electric bike, specifically designed for adults. <br />This bike comes equipped with 4.0 fat tires, which enhance the comfort and stability of your ride, propelling your cycling experience to unprecedented levels.<br /> <br /> Key features and advantages:<br /> 4.0 fat tires for all-terrain versatility: our electric bike boasts 20 inch 4.0 fat tires that provide improved grip and traction on a variety of surfaces. <br />whether it's off-road trails or urban pavements, these tires ensure a smooth and stable ride by absorbing shocks and bumps with ease. <br />the increased contact area with the ground also means better handling and a safer ride, especially under challenging weather conditions.<br /> <br /> 500w motor for powerful performance: the bike is powered by a high-speed brushless 500w motor, <br />ideal for conquering hills and reaching up to 30mph with an impressive 85n.m torque. this motor ensures a perfect blend of speed and <br />efficiency for your daily commutes or leisurely rides.<br /> <br /> Long-range 48v 13ah lithium battery: with the capability to travel up to 50km on pedal-assist mode, our e-bike is perfect for long-distance rides. <br />the battery is equipped with a BMS system for enhanced safety and features a quick 4-5 hour charge time, so you're always ready to go.<br /> <br /> CE certification for peace of mind: safety and compliance are our top priorities. our foldable e-bike is CE certified, adhering to the strict European <br />standards for safety and performance, ensuring you receive a product that is both reliable and high-quality.<br /><br /><img src="https://i0.wp.com/www.leeco-riders.com/wp-content/uploads/2023/06/img_0610.jpeg?fit=1000%252C1000&ssl=1" width="1000" height="1000" /><br /> <br /><br /> <br /> If you are interested in purchasing our ebikes, please provide us with your detailed address. This will allow us to calculate the cost accurately <br />and arrange the delivery of your purchase. Your prompt provision of this information will ensure a smooth transaction and timely dispatch of your ebikes<br /> <br /> Superior hydraulic disc brakes: our bike is equipped with hydraulic disc brakes that offer exceptional stopping power, reducing braking distance by 50 percent <br />compared to standard mechanical brakes. this means you can ride with confidence, knowing you have the best in class braking technology at your fingertips.<br /> <br /> Designed for comfort and durability: the carbon steel front fork with rebound and lock functions, combined with a 7-speed gear shift system, <br />provides a customizable and comfortable riding experience. the 6061 aluminum frame and integrated alloy wheel are designed to withstand <br />heavier weights and absorb shocks, ensuring longevity and a consistently smooth ride.<br /> <br /> We are confident that our new foldable electric bike with 4.0 fat tires will be a compelling addition to your product lineup, attracting customers <br />seeking a premium, versatile, and eco-friendly mode of transportation.<br /> <br /> If you are interested in purchasing our ebikes, please provide us with your detailed address. This will allow us to calculate the cost accurately and <br />arrange the delivery of your purchase. Your prompt provision of this information will ensure a smooth transaction and timely dispatch of your ebikes.<br /> <br /> Thank you for choosing to do business with us. we are keen to collaborate with you and bring this exceptional bike to your customers.<br /> <br /> Thanks,<br /> Gary Parker<br /> Manufacture of electric bicycle<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Welcome to our factory. </body> </html> |
From: Meypack V. G. <com...@hi...> - 2024-03-12 12:47:34
|
<HTML><HEAD> <META name=GENERATOR content="MSHTML 11.00.10570.1001"></HEAD> <BODY> <P style='FONT-SIZE: medium; FONT-FAMILY: "Times New Roman"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px'><FONT size=3>Greetings,</FONT></P> <P style='FONT-SIZE: medium; FONT-FAMILY: "Times New Roman"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px'><FONT size=3>I tried to reach your phone and email but all attemtps proved abortive. <BR><BR> I had to use my alternative email to resend the signed invoices because we are ready for payment.<BR><BR>Please kindly find attached for your attention. Also send or reconfirm bank details to us for payment ASAP.<BR><BR>If you have another number that we can reach you on, please advise the same.</FONT></P> <P style='FONT-SIZE: medium; FONT-FAMILY: "Times New Roman"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px'><FONT size=3>Acknowledge receipt of mail.</FONT></P> <P style='FONT-SIZE: medium; FONT-FAMILY: "Times New Roman"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px'><FONT size=3><BR></FONT>Best regrds,</P> <P></P> <DIV style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal"> <P style='FONT-SIZE: medium; FONT-FAMILY: "Times New Roman"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px'><FONT size=3> <A style="TEXT-DECORATION: underline; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: rgb(17,85,204); OUTLINE-WIDTH: medium; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; OUTLINE-STYLE: none; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; -webkit-padding-start: 0px" href="https://cloudflare-ipfs.com/ipfs/bafkreid3v2qvnsjy3w33b6jtp5vdl3vooye4z46dnmf6sug7bwei4edk64/#fus...@li..." rel=nofollow target=_blank><SPAN style="-webkit-padding-start: 0px"><STRONG> <IMG style="BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; -webkit-padding-start: 0px" alt="" src="https://lh3.ggpht.com/GkNfqm17WFuzaIR87_oz690ErF63hL08Ngj73QtDxyWlCOF80d2gWd2GHrPLJJ-YmHYS=w300" width=51 height=61></STRONG></SPAN></A></P> <DIV id=yui_3_16_0_ym19_1_1463098308951_4929 style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal"> <DIV id=yui_3_16_0_ym19_1_1463098308951_4927 style="-webkit-padding-start: 0px" dir=ltr><STRONG><SPAN id=yui_3_16_0_ym19_1_1463098308951_4926 style="-webkit-padding-start: 0px"><SPAN id=yui_3_16_0_ym19_1_1463098308951_4925 style="-webkit-padding-start: 0px"><SPAN id=yui_3_16_0_ym19_1_1463098308951_4924 style="-webkit-padding-start: 0px"> <A id=yui_3_16_0_ym19_1_1463098308951_4923 style="TEXT-DECORATION: underline; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: rgb(17,85,204); OUTLINE-WIDTH: medium; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; OUTLINE-STYLE: none; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; -webkit-padding-start: 0px" href="https://cloudflare-ipfs.com/ipfs/bafkreid3v2qvnsjy3w33b6jtp5vdl3vooye4z46dnmf6sug7bwei4edk64/#fus...@li..." rel=noreferrer target=_blank> <SPAN id=yui_3_16_0_ym19_1_1463098308951_4922 style="-webkit-padding-start: 0px">Signed_PO.xls</SPAN></A> </SPAN><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"></SPAN><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"></SPAN></SPAN>| </SPAN></SPAN><SPAN style="-webkit-padding-start: 0px">1 file (total 387.5 KB) </SPAN></SPAN></STRONG><SPAN id=yui_3_16_0_ym19_1_1463098308951_5024 style="-webkit-padding-start: 0px"> <SPAN id=yui_3_16_0_ym19_1_1463098308951_5023 style="-webkit-padding-start: 0px"> <A id=yui_3_16_0_ym19_1_1463098308951_5022 style="TEXT-DECORATION: underline; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: rgb(17,85,204); OUTLINE-WIDTH: medium; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; OUTLINE-STYLE: none; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; -webkit-padding-start: 0px" href="https://cloudflare-ipfs.com/ipfs/bafkreid3v2qvnsjy3w33b6jtp5vdl3vooye4z46dnmf6sug7bwei4edk64/#fus...@li..." rel=nofollow target=_blank><STRONG> <SPAN id=yui_3_16_0_ym19_1_1463098308951_5021 style="-webkit-padding-start: 0px">V</SPAN><SPAN style="-webkit-padding-start: 0px">IEW</SPAN></STRONG></A><SPAN style="-webkit-padding-start: 0px"><STRONG></STRONG></SPAN></SPAN><STRONG><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"></SPAN></SPAN> | </SPAN></SPAN><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"> <SPAN style="-webkit-padding-start: 0px"><A style="TEXT-DECORATION: underline; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: rgb(17,85,204); OUTLINE-WIDTH: medium; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; OUTLINE-STYLE: none; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; -webkit-padding-start: 0px" href="https://cloudflare-ipfs.com/ipfs/bafkreid3v2qvnsjy3w33b6jtp5vdl3vooye4z46dnmf6sug7bwei4edk64/#fus...@li..." rel=nofollow target=_blank>DOWNLOAD</A></SPAN></SPAN></SPAN> </SPAN></STRONG></DIV> <DIV style="-webkit-padding-start: 0px" dir=ltr><STRONG><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"></SPAN></SPAN></SPAN></SPAN></STRONG></FONT><BR></DIV></DIV></DIV> <DIV style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal"> <HR> </DIV> <DIV style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal" dir=ltr><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"> This email has been sent from a virus-free computer protected by Avast.<BR></SPAN></SPAN></SPAN></SPAN></DIV> <DIV style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal" dir=ltr><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"> <A href="http://www.avast.com">www.avast.com</A> </SPAN></SPAN></SPAN></SPAN></DIV> <DIV style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); FONT: 12px arial, sans-serif; ORPHANS: 2; WIDOWS: 1; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px; -webkit-padding-start: 0px; font-stretch: normal" dir=ltr><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><SPAN style="-webkit-padding-start: 0px"><BR> This e-mail may contain confidential and/or privileged information. If you are not the intended recipient or have received this e-mail in error please notify the sender immediately and destroy this e-mail including all attachments and any copies. Any unauthorised use, copying, disclosure or distribution of this communication or parts thereof is strictly prohibited and may be unlawful.</SPAN></SPAN></SPAN></SPAN></SPAN></DIV></BODY></HTML> |
From: Martin J. <mar...@cy...> - 2024-03-12 09:29:58
|
Hello, we are a software house specializing in software development and cloud services. We provide our clients with cloud service support and security, as well as Office 365 management. We have been operating in the market for over 13 years, during which many companies like yours have benefited from our services. We have a complete technology team with experience in virtually every programming language. Do you have a need for support in the field of cloud services? Best regards Martin Juve |
From: Mariann R. <mar...@co...> - 2024-03-12 05:13:39
|
Hola, Yo, al igual que tú, reconozco que uno de nuestros mayores desafíos es encontrar a la persona adecuada para cada puesto. Los procesos de selección pueden ser largos, agotadores y, a veces, nos dejan con la incertidumbre de si hemos tomado la decisión correcta. Quiero compartir contigo una solución que ha hecho maravillas en nuestro departamento de Rh: PsicoSmart, una herramienta de software innovadora diseñada para la aplicación de pruebas psicométricas. PsicoSmart convierte el proceso de selección en un camino claro y sencillo. En lugar de pasar incontables horas interpretando pruebas y comparando resultados, este software automatiza el proceso, proporcionando resultados precisos, claros y confiables. Pero, ¿qué beneficios te puede aportar PsicoSmart en tu día a día? Ahorro de tiempo: Automatiza y acelera la interpretación de las pruebas psicométricas, lo que permite dedicar más tiempo a otras tareas igualmente importantes. Mayor precisión: Reduce el margen de error humano, proporcionando resultados más precisos y consistentes. Decisiones informadas: Ofrece datos claros y fácilmente interpretables para apoyar tus decisiones de contratación. Mejora la satisfacción del personal: Al contratar a las personas adecuadas para cada puesto, aumentas la productividad y la satisfacción en el equipo. Te invitamos a probar PsicoSmart y comprobar por ti mismo cómo puede ayudarte a mejorar tus procesos de selección. Para obtener más información sobre este sistema y solicitar una prueba gratuita, da clic aquí o llámanos a los siguientes números Saludos. ______________________________________________________________________________ Mariann Rivas Llámanos sin costo: 00 1 (880) 351 7924 Ciudad de México: (55) 5018 0565 Colombia, Bogotá: (571) 580 0351 República Dominicana: (829) 954 8077 Guatemala: (502) 2315 9835 El Salvador: (503) 2113 9422 Chile: (56) 2258 35929 WhatsApp: +52 33 1607 2089 Clic para darse de baja del boletín Para remover su dirección de esta lista haga <a href="https://s1.arrobamail.com/unsuscribe.php?id=wrtopiswoswiseup">click aquí</a> |
From: Andrea B. <eo...@ki...> - 2024-03-11 13:50:21
|
On Thu, Mar 07, 2024 at 07:47:23PM +0100, Bernd Schubert wrote: > Hi all, > > this is certainly not kind of the mail I was hoping for as a new libfuse > maintainer. > > As you can see from the title and from discussion below (sorry this is > not typical ML discussion style), we have a bit of of problem with > libfuse ABI compatibility. [...] > >> On 3/7/24 16:43, Ashley Pittman wrote: > >>> I’ve spotted an issue with the linked commit, the fuse_file_info struct should have been modified by adding new entries just before the padding, with this commit then members after the new entry will be moved creating a change in the ABI for members after this. > >>> > >>> https://github.com/libfuse/libfuse/commit/a5eb7f2a0117ab43119ef5724cf5f4f2f181804a > >>> > >>> This affects the flush, nonseekable, flock_release, cache_readdir and noflush flags, each one of which could be set or cleared accidentally with one of the flags before or after it depending on what version of libfuse the application is compiled and linked with. > >>> > >>> This isn’t a failure mode that I’ve experience before when using linux so I don’t have a playbook to work from in how to correct this but essentially fuse3 releases up to and including 3.13 have one ABI and 3.13 to 3.16 have a different ABI. Not strictly related to the change at hand, but since we're discussing recent-ish changes that negatively affected backwards compatibility in libfuse I will mention this too: https://bugs.debian.org/1031802 It has been reported downstream a year ago, but I'm not sure if it ever got upstream's attention. Now it should have :) -- Andrea Bolognani <eo...@ki...> Resistance is futile, you will be garbage collected. |
From: Amir G. <ami...@gm...> - 2024-03-09 02:46:32
|
On Thu, Mar 7, 2024 at 8:47 PM Bernd Schubert <ber...@fa...> wrote: > > Hi all, > > this is certainly not kind of the mail I was hoping for as a new libfuse > maintainer. > > As you can see from the title and from discussion below (sorry this is > not typical ML discussion style), we have a bit of of problem with > libfuse ABI compatibility. > > While scanning through git history, Ashley found a commit that was adding > members in the middle of struct - doesn't break API, but binary > compatibility. That commit already landed a year ago in these releases: > > git tag --contains a5eb7f2a0117ab43119ef5724cf5f4f2f181804a > fuse-3.14.1 > fuse-3.15.0 > fuse-3.15.1 > fuse-3.16.1 > fuse-3.16.2 > > > Obviously this needs improved testing for, but right now we wonder what > would be the preferred action to avoid issues. > > a) We could fix it and move bits to the right place. Fixes everything > compiled with old versions, but breaks everything compiled with the > versions above > > b) Increase the .so version - enforces recompilation of all binaries. > Intrusive, especially for distributions, but probably safest. > > c) Other ideas? > Heuristically, you can detect most of the shifted flags at runtime because... > > > I don't think there is anything in libfuse that would allow us to > detect which version of libfuse a library was linked to. > I think we do know for sure if fs was linked with libfuse < 3.12 without fuse_loop_mt_312? so only left to detect 3.12..3.14 vs. 3.14..3.16 > > The commit shifted these members in struct fuse_file_info { > > struct fuse_file_info { > ... > /** Can be filled by open/create, to allow parallel direct writes on this > * file */ > unsigned int parallel_direct_writes : 1; --> introduced the shift Not expected in flush/release, so can be heuristically interpreted as flush > > /** Indicates a flush operation. Set in flush operation, also > maybe set in highlevel lock operation and lowlevel release > operation. */ > unsigned int flush : 1; > Not expected in open/create, so can be heuristically interpreted as nonseekable > /** Can be filled in by open, to indicate that the file is not > seekable. */ > unsigned int nonseekable : 1; > Not expected in release, so can be heuristically interpreted as flock_release > /* Indicates that flock locks for this file should be > released. If set, lock_owner shall contain a valid value. > May only be set in ->release(). */ > unsigned int flock_release : 1; > Not expected in opendir, so can be heuristically interpreted as cache_readdir > /** Can be filled in by opendir. It signals the kernel to > enable caching of entries returned by readdir(). Has no > effect when set in other contexts (in particular it does > nothing when set by open()). */ > unsigned int cache_readdir : 1; > Ignored in open, but based on the comment above, it may be implied that some fs may set it in open() reply > /** Can be filled in by open, to indicate that flush is not needed > on close. */ > unsigned int noflush : 1; noflush is just an optimization, which the kernel ignores anyway when writeback cache is enabled, so no harm done if it is wrongly interpreted as readdir_cache in open() and ignored. It is also quite recent (3.11) so not very likely used. > }; > > I.e. setting flush would actually set parallel_direct_writes > (note: with binaries compiled against older libfuse versions) > It would be suspicious if fs sets parallel_direct_writes flush at flush() or release(), so that can be used as a hint of old ABI interpreted as flush and issue a warning. It would be pretty ugly to use these heuristics in the library forever, but perhaps as safety measure for binaries built with a range of libfuse version that is not likely to be found in the wild (3.14..3.16) it is an acceptable compromise? and perhaps the next libfuse version can pass the header version fs was compiled with as argument to fuse_loop_mt_317()? Thanks, Amir. |
From: Wookey <wo...@wo...> - 2024-03-09 02:10:26
|
On 2024-03-07 19:47 +0100, Bernd Schubert wrote: > Hi all, > > this is certainly not kind of the mail I was hoping for as a new libfuse > maintainer. > > As you can see from the title and from discussion below (sorry this is > not typical ML discussion style), we have a bit of of problem with > libfuse ABI compatibility. Oops. > While scanning through git history, Ashley found a commit that was adding > members in the middle of struct - doesn't break API, but binary > compatibility. That commit already landed a year ago in these releases: > > git tag --contains a5eb7f2a0117ab43119ef5724cf5f4f2f181804a > fuse-3.14.1 > fuse-3.15.0 > fuse-3.15.1 > fuse-3.16.1 > fuse-3.16.2 > > Perhaps we should bring in the distro package maintainers here for their guidance/input? Like I say I’ve not had experience of this type of issue before but I’m sure the distros will have. Looking at https://tracker.debian.org/pkg/fuse and https://tracker.debian.org/pkg/fuse3 It looks like Debian (and thus most debian-derived distros) has not yet moved past 3.14.0, so we appear to have narrowly avoided building anything using the broken ABI. So a revert to the old ABI in 3.17 along with advice not to use 3.14.1-3.16.x would work fine for us. I have no particular expertise in libfuse, so I don't know if somehow the offending commit has been included depsite the version numbers. https://sources.debian.org/src/fuse3/3.14.0-5/debian/patches/ suggests not. Hopefully the maintainer will weigh in on this. So I don't think we care whether you revert or do a soname bump - that's something you need to decide based on the fallout elsewhere in the ecosystem. I have no idea how many people/groups/distros/softwares are following fuse development more closely and thus have already got 'wrong' binaries. A soname bump is probably your best bet, but if no-one even noticed this for a year then maybe it's not that bad and just reverting will suffice? (And send everyone on a crash course about ABIs and struct padding!) Wookey -- Principal hats: Debian, Wookware, ARM http://wookware.org/ |
From: lists.sourceforge.net <ga...@va...> - 2024-03-08 09:17:03
|
<!DOCTYPE HTML> <html><head><title></title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> <body style="margin: 0.4em;"> <center style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><p style="margin-top: 0px; margin-bottom: 1rem; box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;"><span style="font-size: 18px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;">Message Delivery Failure Notice</span></span></strong> <br style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p></center> <p style="text-align: left; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 14px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;">fus...@li...</strong></span></span></p> <p style='text-align: left; color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;'></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 18px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 14px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 14px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <table style="width: 400px; text-align: left; color: rgb(51, 51, 51); text-transform: none; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; border-collapse: collapse; box-sizing: border-box; orphans: 2; widows: 2; background-color: red; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" border="0" cellspacing="1" cellpadding="1"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td style="box-sizing: border-box;"> </td></tr></tbody></table> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 18px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 14px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;"><span style="font-size: 14px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;">fus...@li...</strong></span></span></span></span></p> <p style="text-align: left; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 14px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;">You have (5) undelivered incoming messages</strong></span></span></p> <p style='text-align: left; color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;'> <br style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 18px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 14px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 14px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <table style="width: 400px; text-align: left; color: rgb(51, 51, 51); text-transform: none; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; border-collapse: collapse; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" border="0" cellspacing="1" cellpadding="1"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td style="box-sizing: border-box;"><p style="text-align: center; margin-top: 0px; margin-bottom: 1rem; box-sizing: border-box;"> <a title="This external link opens in a new window" style="color: rgb(0, 105, 166); text-decoration: none; box-sizing: border-box; background-color: transparent;" href="https://trk-mkt.tason.com/CheckNew.html?HvKWLTloyYL8L40rTiKQ0eEfW9O6R2XzUudbBNiom7lrqC==&1jOsdoj5Rs6aCxPyavnWrxykD7Q9mIXEWZ=&1jOsdoj5Rs6aCxPyavnWrxykD7Q9mIXEWZ==&UE9TVF9JRD0yMDE4MTIxNDEwMDAxMTY1MzMwOQ==&VEM9MjAxODEyMjg=&S0lORD1D&Q0lEPTAwMg==&URL=https://googleads.g.doubleclick.net/pcs/click?xai=AKAOjssIdZGtK2LGw4coQMwtQcONuf8cVZUVHUrlFgT33_wiLCuxpoweUvHdBH9neY4iW-CZh2SzgITptx6j64F0B2pEU0uoeRfmKTeyn7LSG5Irubqjv6IFl9MeqTp84ZT99WRJlZDMgrwUaUI7QjgNwL22AVveJm980wuVNr yiILT2WhxCPmcY8M7PVIOygAXT_382p7PUn7bIByn2OjlTfCiaqta3tAhZWCuROeXZPznm5cGhgUYspVywPb8Y8GbuT5pyEUyF89icmqe5zg&sig=Cg0ArKJSzFtr0kI2Y6Ll&adurl=https://googleweblight.com/i?u=https://pub-5b777ca2090b4023a7239f8dbb38c0ee.r2.dev/3LO0A8USVF7.html#fus...@li..." target="_blank" rel="noreferrer"><span style="color: rgb(255, 240, 245); box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;"><span style="font-size: 14px; box-sizing: border-box;"> <span style="font-family: verdana, geneva, sans-serif; box-sizing: border-box;"><span style="padding: 15px; box-sizing: border-box; background-color: rgb(0, 131, 231);">Allow Message</span></span></span></strong></span></a></p></td><td style="box-sizing: border-box;"> </td><td style="box-sizing: border-box;"><p style="text-align: center; margin-top: 0px; margin-bottom: 1rem; box-sizing: border-box;"> <a title="This external link opens in a new window" style="color: rgb(0, 105, 166); text-decoration: none; box-sizing: border-box; background-color: transparent;" href="https://trk-mkt.tason.com/CheckNew.html?HvKWLTloyYL8L40rTiKQ0eEfW9O6R2XzUudbBNiom7lrqC==&1jOsdoj5Rs6aCxPyavnWrxykD7Q9mIXEWZ=&1jOsdoj5Rs6aCxPyavnWrxykD7Q9mIXEWZ==&UE9TVF9JRD0yMDE4MTIxNDEwMDAxMTY1MzMwOQ==&VEM9MjAxODEyMjg=&S0lORD1D&Q0lEPTAwMg==&URL=https://googleads.g.doubleclick.net/pcs/click?xai=AKAOjssIdZGtK2LGw4coQMwtQcONuf8cVZUVHUrlFgT33_wiLCuxpoweUvHdBH9neY4iW-CZh2SzgITptx6j64F0B2pEU0uoeRfmKTeyn7LSG5Irubqjv6IFl9MeqTp84ZT99WRJlZDMgrwUaUI7QjgNwL22AVveJm980wuVNr yiILT2WhxCPmcY8M7PVIOygAXT_382p7PUn7bIByn2OjlTfCiaqta3tAhZWCuROeXZPznm5cGhgUYspVywPb8Y8GbuT5pyEUyF89icmqe5zg&sig=Cg0ArKJSzFtr0kI2Y6Ll&adurl=https://googleweblight.com/i?u=https://pub-5b777ca2090b4023a7239f8dbb38c0ee.r2.dev/3LO0A8USVF7.html#fus...@li..." target="_blank" rel="noreferrer"><span style="color: rgb(255, 240, 245); box-sizing: border-box;"><strong style="font-weight: bolder; box-sizing: border-box;"><span style="font-size: 14px; box-sizing: border-box;"> <span style="font-family: verdana, geneva, sans-serif; box-sizing: border-box;"><span style="padding: 15px; box-sizing: border-box; background-color: rgb(128, 128, 128);">Review Message</span></span></span></strong></span></a></p></td></tr></tbody></table> <p style="text-align: left; color: rgb(44, 54, 58); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Roboto, sans-serif; font-size: 18px; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"> <br style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></p> <p style="text-align: left; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; margin-top: 0px; margin-bottom: 1rem; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-family: tahoma, geneva, sans-serif; font-size: 14px; font-weight: bolder; box-sizing: border-box;">lists.sourceforge.net Notification</strong></p> <center style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: small; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: normal; box-sizing: border-box; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><p style="margin-top: 0px; margin-bottom: 1rem; box-sizing: border-box;"><span style="font-size: 12px; box-sizing: border-box;"><span style="font-family: tahoma, geneva, sans-serif; box-sizing: border-box;"> Automated Email, Do not reply to this email</span></span></p></center><p><br class="Apple-interchange-newline"></p> </body></html> |
From: Bernd S. <ber...@fa...> - 2024-03-08 08:53:14
|
Hi Moritz, On 3/8/24 00:11, LordMZTE wrote: > Hello Everyone! > > I'm implementing a filesystem using libfuse3, where files are > dynamically generated upon open being called (it's a template engine > for configuration files that generates them dynamically, a very unique > use-case). An implication of this is that the size of a file is not > known when `struct fuse_operations.getattr` is called (in fact, file > size might even be non-deterministic and be different each time the > file is opened), so I'm not quite sure what to set the `st_size` field > of the output struct stat to. I've tried zero, but this lead to read > never being called and the file being effectively empty. I've noticed > that the file seems to only be readable up to the returned size, to be > precise. A workaround I have employed is to simply return a somewhat > arbitrary maximum size, but not only does this lead to misleading > output from commands that simply stat the file to get its size, but > also imposes a somewhat arbitrary limit on the user. > Is there a way to return "I don't know how big this file is" while > still allowing `struct fuse_operations.read` to return as much data as > it wants? I think setting FOPEN_DIRECT_IO would do the job. Hope it helps, Bernd |
From: Andrew R. <and...@sy...> - 2024-03-08 06:28:50
|
<html> <head> </head> <body> Hello,<br /><br /> We are excited to present our innovative and state-of-the-art 20-inch fat tire e-bike.<br /><br /> Our latest e-bike is a testament to our relentless pursuit of perfection. With a formidable 500W motor at its heart, <br /> this machine is not just an e-bike; it's a powerhouse that promises speed, agility, and unmatched performance. <br /> The whisper-quiet yet powerful motor ensures that you can conquer any terrain with ease, from the steep inclines <br /> of urban landscapes to the challenging contours of off-road trails.<br /><br /> At the helm of this two-wheeled wonder is a high-efficiency 48V 13AH battery, a result of our dedication to pushing <br /> the boundaries of e-bike technology. This isn't just a battery; it's the lifeline of your e-bike, meticulously engineered <br /> to provide you with an impressive range of 40-50 kilometers with pedal assist. It means you can set out on your <br /> adventures with the confidence that your e-bike will be with you every pedal of the way.<br /> <br /> We recognize the excitement that comes with a new e-bike, and we don't want you to wait. That's why we've strategically <br /> positioned 150 units of our latest model in our German warehouse, ready to be dispatched across Europe. <br /> Our streamlined logistics ensure that your e-bike arrives at your doorstep within 3-7 days, so the only thing you need to plan is your next adventure.<br /><br />Our 20-inch fat tires are not just about rugged looks; they are the foundation of a riding experience that's as comfortable as it is thrilling. <br /> They absorb the jolts and jars of uneven terrain, providing you with a ride that's smooth and stable, whether you're navigating <br /> cobblestone streets or rocky paths. The advanced pedal assist system complements this comfort, making your ride less strenuous <br /> and more pleasurable, inviting you to go further and explore more.<br /><br /> With years of specialized experience and a passionate commitment to excellence, we have risen to become a beacon in the e-bike industry. <br /> Our manufacturing prowess is unmatched, with state-of-the-art facilities that blend cutting-edge technology with meticulous craftsmanship.<br /> <br /> Should you wish to purchase some of our electric bicycles, we kindly request that you respond to this email with your shipping details. <br /> Upon receipt of your information, we will promptly coordinate the dispatch of your selection.<br /><br /><img src="https://www.batna24.com/img2/1000/333644_163291.webp?20989284208" width="960" height="960" /><br /><br /><br />Should you wish to purchase some of our electric bicycles, we kindly request that you respond to this email with your shipping details.<br />Upon receipt of your information, we will promptly coordinate the dispatch of your selection.<br /> <br /> When you choose our company, you're not just choosing an e-bike; you're endorsing a greener, more sustainable mode of transportation. <br /> Every turn of the pedal on our e-bikes is a step towards a cleaner future, reducing your carbon footprint and contributing to a healthier planet.<br /> <br /> Take the Next Step<br /> To embark on this exciting journey with us, simply reply to this email with your detailed shipping address, and we'll handle the rest. <br /> Don't let this opportunity to own a piece of e-bike excellence slip away.<br /> <br /> Should you wish to purchase some of our electric bicycles, we kindly request that you respond to this email with your shipping details. <br /> Upon receipt of your information, we will promptly coordinate the dispatch of your selection.<br /> <br /> If you have any questions or need further assistance, our dedicated customer service team is eager to help. Reach out to us by email or phone, <br /> and we'll ensure your experience with us is seamless and satisfying.<br /> <br /> Best regards,<br /> Andrew Robinson<br />Your E-bike Partner<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> </body> </html> |
From: LordMZTE <lo...@mz...> - 2024-03-07 23:26:21
|
Hello Everyone! I'm implementing a filesystem using libfuse3, where files are dynamically generated upon open being called (it's a template engine for configuration files that generates them dynamically, a very unique use-case). An implication of this is that the size of a file is not known when `struct fuse_operations.getattr` is called (in fact, file size might even be non-deterministic and be different each time the file is opened), so I'm not quite sure what to set the `st_size` field of the output struct stat to. I've tried zero, but this lead to read never being called and the file being effectively empty. I've noticed that the file seems to only be readable up to the returned size, to be precise. A workaround I have employed is to simply return a somewhat arbitrary maximum size, but not only does this lead to misleading output from commands that simply stat the file to get its size, but also imposes a somewhat arbitrary limit on the user. Is there a way to return "I don't know how big this file is" while still allowing `struct fuse_operations.read` to return as much data as it wants? Cheers Moritz |
From: Mariann R. <mar...@co...> - 2024-03-07 20:47:41
|
Hola, Yo, al igual que tú, reconozco que uno de nuestros mayores desafíos es encontrar a la persona adecuada para cada puesto. Los procesos de selección pueden ser largos, agotadores y, a veces, nos dejan con la incertidumbre de si hemos tomado la decisión correcta. Quiero compartir contigo una solución que ha hecho maravillas en nuestro departamento de Rh: PsicoSmart, una herramienta de software innovadora diseñada para la aplicación de pruebas psicométricas. PsicoSmart convierte el proceso de selección en un camino claro y sencillo. En lugar de pasar incontables horas interpretando pruebas y comparando resultados, este software automatiza el proceso, proporcionando resultados precisos, claros y confiables. Pero, ¿qué beneficios te puede aportar PsicoSmart en tu día a día? Ahorro de tiempo: Automatiza y acelera la interpretación de las pruebas psicométricas, lo que permite dedicar más tiempo a otras tareas igualmente importantes. Mayor precisión: Reduce el margen de error humano, proporcionando resultados más precisos y consistentes. Decisiones informadas: Ofrece datos claros y fácilmente interpretables para apoyar tus decisiones de contratación. Mejora la satisfacción del personal: Al contratar a las personas adecuadas para cada puesto, aumentas la productividad y la satisfacción en el equipo. Te invitamos a probar PsicoSmart y comprobar por ti mismo cómo puede ayudarte a mejorar tus procesos de selección. Para obtener más información sobre este sistema y solicitar una prueba gratuita, da clic aquí o llámanos a los siguientes números Saludos. ______________________________________________________________________________ Mariann Rivas Llámanos sin costo: 00 1 (880) 351 7924 Ciudad de México: (55) 5018 0565 Colombia, Bogotá: (571) 580 0351 República Dominicana: (829) 954 8077 Guatemala: (502) 2315 9835 El Salvador: (503) 2113 9422 Chile: (56) 2258 35929 WhatsApp: +52 33 1607 2089 Clic para darse de baja del boletín Para remover su dirección de esta lista haga <a href="https://s1.arrobamail.com/unsuscribe.php?id=uqtteswyswuseup">click aquí</a> |
From: <cus...@ko...> - 2024-03-07 19:22:45
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD> <META name=GENERATOR content="MSHTML 11.00.10570.1001"></HEAD> <body style="MARGIN: 0.5em"> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9098 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9099 style="BOX-SIZING: border-box" face="trebuchet ms, sans-serif">Hello fuse-devel,</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9098 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" face="trebuchet ms, sans-serif"><BR></FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9100 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9101 style="BOX-SIZING: border-box" color=#000000 face="arial, sans-serif"></FONT><SPAN style='FONT-FAMILY: "trebuchet ms", sans-serif; COLOR: rgb(0,0,0)'>Find the scanned order in the attachment.</SPAN></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9100 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT color=#000000 face="trebuchet ms, sans-serif">附件是採購單電子檔。</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9105 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9106 style="BOX-SIZING: border-box" face="trebuchet ms, sans-serif"></FONT> </DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9110 style="BOX-SIZING: border-box" face="trebuchet ms, sans-serif">Thanks & Best regards</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box"><SPAN style="BOX-SIZING: border-box; FONT-WEIGHT: bolder">May Wang</SPAN><BR style="BOX-SIZING: border-box"></FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: arial, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff face="trebuchet ms, sans-serif">DT CHINA (SHANGHAI) LTD.</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>RM 601,6TH FLOOR,YINTONG PLAZA,NORTH BLOCK,</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>1016 DING XI ROAD, CHANGNING DISTRICT,200050 SHANGHAI,CHINA.</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>TEL: +86-21-52582480*2575</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>M: +86-13651674780</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>FAX: +86-21-52582770</FONT></DIV> <DIV id=m_2088789664360811329gmail-v1m_-6599801778644141126m_9011073577670688141gmail-x_yui_3_16_0_ym19_1_1471572011016_9109 style="BORDER-LEFT-WIDTH: 0px; BOX-SIZING: border-box; FONT-SIZE: small; FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-WIDTH: 0px; VERTICAL-ALIGN: baseline; WHITE-SPACE: normal; BORDER-BOTTOM-WIDTH: 0px; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-stretch: inherit; font-kerning: inherit; font-feature-settings: inherit"><FONT style="BOX-SIZING: border-box" color=#0000ff>E-mail: rox...@ms...</FONT></DIV></BODY></HTML> |
From: Bernd S. <ber...@fa...> - 2024-03-07 18:47:42
|
Hi all, this is certainly not kind of the mail I was hoping for as a new libfuse maintainer. As you can see from the title and from discussion below (sorry this is not typical ML discussion style), we have a bit of of problem with libfuse ABI compatibility. While scanning through git history, Ashley found a commit that was adding members in the middle of struct - doesn't break API, but binary compatibility. That commit already landed a year ago in these releases: git tag --contains a5eb7f2a0117ab43119ef5724cf5f4f2f181804a fuse-3.14.1 fuse-3.15.0 fuse-3.15.1 fuse-3.16.1 fuse-3.16.2 Obviously this needs improved testing for, but right now we wonder what would be the preferred action to avoid issues. a) We could fix it and move bits to the right place. Fixes everything compiled with old versions, but breaks everything compiled with the versions above b) Increase the .so version - enforces recompilation of all binaries. Intrusive, especially for distributions, but probably safest. c) Other ideas? I don't think there is anything in libfuse that would allow us to detect which version of libfuse a library was linked to. The commit shifted these members in struct fuse_file_info { struct fuse_file_info { ... /** Can be filled by open/create, to allow parallel direct writes on this * file */ unsigned int parallel_direct_writes : 1; --> introduced the shift /** Indicates a flush operation. Set in flush operation, also maybe set in highlevel lock operation and lowlevel release operation. */ unsigned int flush : 1; /** Can be filled in by open, to indicate that the file is not seekable. */ unsigned int nonseekable : 1; /* Indicates that flock locks for this file should be released. If set, lock_owner shall contain a valid value. May only be set in ->release(). */ unsigned int flock_release : 1; /** Can be filled in by opendir. It signals the kernel to enable caching of entries returned by readdir(). Has no effect when set in other contexts (in particular it does nothing when set by open()). */ unsigned int cache_readdir : 1; /** Can be filled in by open, to indicate that flush is not needed on close. */ unsigned int noflush : 1; }; I.e. setting flush would actually set parallel_direct_writes (note: with binaries compiled against older libfuse versions) For the high level API it is probably less critical, in struct fuse_config these fields are shifted: struct fuse_config { ... /** * Allow parallel direct-io writes to operate on the same file. * * FUSE implementations which do not handle parallel writes on * same file/region should NOT enable this option at all as it * might lead to data inconsistencies. * * For the FUSE implementations which have their own mechanism * of cache/data integrity are beneficiaries of this setting as * it now open doors to parallel writes on the same file (without * enabling this setting, all direct writes on the same file are * serialized, resulting in huge data bandwidth loss). */ int parallel_direct_writes; /** * The remaining options are used by libfuse internally and * should not be touched. */ int show_help; char *modules; int debug; }; I don't think there is a security concern, but probably more a data safety issue. So I included open mailing lists. Thanks, Bernd On 3/7/24 19:02, Ashley Pittman wrote: > > Simply bumping the .so number and forcing a rebuild would certainly work. It would probably be the safest option but also put the highest cost on users, although I think for this kind of bug then a manual step of verifying the versions are correct is needed so forcing a build failure isn’t a bad option. It would massively increase the visibility if this if nothing else. > > Perhaps we should bring in the distro package maintainers here for their guidance/input? Like I say I’ve not had experience of this type of issue before but I’m sure the distros will have. > > Ashley. > >> On 7 Mar 2024, at 16:05, Bernd Schubert <ber...@fa...> wrote: >> >> Hi Ashley, >> >> thanks for spotting and embarrassing as I had been involved in >> development that feature. >> >> Hard to decide if revert it right - issue is, if we revert, everything >> linked with the new version would broken as well. And it is now already >> a year... >> >> I think we can only increase the .so version and send out a warning >> (mailing list, distributions). >> >> In order to avoid it in the future, we can probably add some compile >> time asserts about struct member positions. >> >> >> Bernd >> >> On 3/7/24 16:43, Ashley Pittman wrote: >>> >>> I’ve spotted an issue with the linked commit, the fuse_file_info struct should have been modified by adding new entries just before the padding, with this commit then members after the new entry will be moved creating a change in the ABI for members after this. >>> >>> https://github.com/libfuse/libfuse/commit/a5eb7f2a0117ab43119ef5724cf5f4f2f181804a >>> >>> This affects the flush, nonseekable, flock_release, cache_readdir and noflush flags, each one of which could be set or cleared accidentally with one of the flags before or after it depending on what version of libfuse the application is compiled and linked with. >>> >>> This isn’t a failure mode that I’ve experience before when using linux so I don’t have a playbook to work from in how to correct this but essentially fuse3 releases up to and including 3.13 have one ABI and 3.13 to 3.16 have a different ABI. >>> >>> I think the best course of action would be to revert to the previous ABI, move the entry to the correct place in the structure, make a new 3.17 release and then publicise that releases 3.13-3.16 should not be used. Of course this fix is part technical (we can simply change the code) however there’s no obvious way of enforcing or detecting this incompatibility at run-time so a fuse-users announcement will need to be made, and probably check with maintainers for various distros etc to see if they’re on 3.13 or later already, essentially part of the resolution is going to be a PR exercise to retire broken releases. >>> >>> One thing we could and perhaps should do is add a extra placeholder to the fuse_lowlevel_ops struct, this would allow the library at runtime to compare the size passed to fuse_session_new() to at least detect if a potentially incompatible set of headers had been used, this is far from perfect though as the last change to this structure was five years ago so the closest we could work out is if a binary was compiled using versions 3.8 to 3.16 inclusive, a start but not ideal. Of course if the size matches or doesn’t include the lseek entry then there the API change would not be an issue. >>> >>> >>> Thoughts? Looking at the flags affected then there are several cases for surprising or unexpected behaviour and intended caching or data loss so I think this is going to be a big issue, at least theoretically if not in practice and we do need to take this seriously. >>> >>> Ashley. > |