Apache2 cannot send more than a few kilobytes of a file mounted over CIFS. This causes most web browsers to choke when downloading, anything larger than a small HTML file. Wget will eventually succeed, attempting to get the file repeatedly, accessing a few kilobytes at a time. Grabbing the file with wget will yield something like this: wget http://<server>/foo.pdf --2008-08-11 10:04:44-- http://<server>/foo.pdf Resolving <server>... <IP> Connecting to <server>|<IP>|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 52503 (51K) [application/pdf] Saving to: `foo.pdf' 22% [=======> ] 11,584 --.-K/s in 0.06s 2008-08-11 10:04:44 (176 KB/s) - Connection closed at byte 11584. Retrying.
after further investigation, the sendfile() functionality was purportedly working as recently as 7/24, which would put versions at 2.2.9-5 (apache2.2) and 2.6.25-7 (linux-image). I verified this by looking through apache logs, and there was a datafile (which resides on a CIFS partition) downloaded on 7/24. The apache logs indicate a successful GET request (code 200) on 7/24. Although this doesn't confirm a complete download happened on 7/24, it reportely was complete. Hope that helps...
Hi, it is extremely unlikely that this problem is due to any apache change. The changes between 2.2.9-4 and -6 were very small and not in any way related to such core functionality. Libapr/libaprutil haven't changed in testing since 7/10, either. It is more likely that this is a kernel issue. I am not sure you can trust the access logs. At least there is another (rather old) bug report that sendfile failures are not reported in some cases. To narrow the problem down, you should try to strace an apache process during a failed request. You could also try to set "enablemmap off". Cheers, Stefan
Stefan, Here is the trimmed strace. (I assume you aren't interested in all the startup and shutdown garbage.) I'm hoping that the debian bts handles this file correctly...
Thanks for the strace. But I am a bit confused now. Was this done with "EnableSendfile off" set? The strace shows sendfile being called. Since EnableSendfile can be configured per dir or per vhost, maybe the access was done via a vhost that has senfile enabled? Cheers, Stefan
Stefan, I am using "EnableSendfile Off" on a per dir basis, namely the CIFS mounted dirs (I alluded to that in my original post as the "adequate workaround"), however I commented out those lines for the strace as I thought that is what you were interested in: where and how sendfile() is choking. If you need any more info from me, let me know as I am happy to help in any way possible.
retitle 494768 sendfile no longer works with CIFS reassign 494768 linux-2.6 thanks It seems I misunderstood you. I thought is wasn't working anymore even with "EnableSendfile Off". I am reassigning this bug to the kernel. You could probably help by determining as accurately as possible which linux-image version worked and which version broke it. Cheers, Stefan
Hi, Just wanted to report that this problem remains in the newest linux-image (2.6.26-3).
Hi, Just wanted to report that this problem remains in linux-image 2.6.26-4.
reassign 494768 apache2 thanks The given strace shows that sendfile returns a proper error for the sendfile invocation (EOVERFLOW). apache must not ignore errors returned by syscalls. Bastian
reassign 494768 apache2 thanks The given strace shows that sendfile returns a proper error for the sendfile invocation (EOVERFLOW). apache must not ignore errors returned by syscalls. Bastian
This is not the issue here, apache works as documented. The point is that, according to the submitter, sendfile on CIFS used to work with older kernels but now gives an error. Chad, I think it would really be helpful if you could check exactly which kernel version worked. Cheers, Stefan
This is not the issue here, apache works as documented. The point is that, according to the submitter, sendfile on CIFS used to work with older kernels but now gives an error. Chad, I think it would really be helpful if you could check exactly which kernel version worked. Cheers, Stefan
Hi, Just wanted to report that the problem remains in linux-image 2.6.26-5
Stephan, You'll have to tell me where I can get older Debian kernels as I don't have anything older than 2.6.26-* in the /var/cache/apt/archives on that machine (or any other AMD64 Debian machine for that matter).
Normally on snapshot.debian.net, but this seems to be incomplete lately. At least 2.6.25-1 is still at http://snapshot.debian.net/archive/2008/04/29/debian/pool/main/l/linux-2.6/ and you can find some 2.6.24 versions there, too. You could also try the 2.6.24 etchnhalf kernel that is in Debian etch and available on all Debian mirrors.
Stephan,
I tried a few at random:
linux-image-2.6.24-etchnhalf.1-amd64 2.6.24-6~etchnhalf.5
linux-image-2.6.25-1-amd64 2.6.25-1
linux-image-2.6.25-2-amd64 2.6.25-6
linux-image-2.6.25-2-amd64 2.6.25-7
and none of them resolved the problem. This is a bit troubling to me.
Are there any other (apache2) dependencies that could be to blame?
Specifically I'm wondering if sendfile() was always broken, but if
apache2 was not previously attempting to use sendfile()... Stephan -
you said that not much changed in the apache2 or libapr code to break
sendfile(). Does apache go directly to the kernel or does it go through
libc for instance?
sendfile has a wrapper in libc, but I doubt that it does anything other than call the sendfile syscall. Maybe you used smbfs before and now use cifs? Smbfs was removed after 2.6.23 in Debian. Or your smb server changed its behaviour. Cheers, Stefan
Hi, Just wanted to report the problem remains in linux-image 2.6.26-8 and apache 2.2.9-10
The CIFS server is Solaris 10, Samba 3.0.28. It is definitely serving up CIFS as I had to manually upgrade the CIFS module on some older (Linux) clients to deal with a deficiency in the pre 1.50 CIFS kernel module. I patch the Sun box regularly, and the thought had occurred to me that a Sun patch was to blame, but there was no major version changes around the time that the breakage occurred. Looking at the bugfixes in each patch, nothing stood out that might indicate a change in the FS representation.
I can verify that apache2-mpm-worker is indeed having this problem when
serving static files from a CIFS mount on a modern lenny system.
Each HTTP fetch is capable of pulling some smallish amount of bytes
(~10K for some connections i've tried) before the TCP connection
abruptly terminates.
On such a pull, an strace shows:
at the time of the send, and if LogLevel is set to debug, apache only
logs the following single line to error.log (client IP has been
anonymized):
I agree with Bastian Blank that it seems like Apache is misbehaving
here. If sendfile(2) fails, shouldn't apache gracefully fall back to
non-sendfile behavior (based on the number of bytes transferred, which
should be in the *offset parameter).
sendfile(2) even says:
Applications may wish to fall back to read(2)/write(2) in
the case where sendfile() fails with EINVAL or ENOSYS.
Interestingly, when i tried experimenting with this by doing sendfile
from a CIFS-mounted file through a local UNIX-domain socket [0],
sendfile(2) returned EOVERFLOW, but the entire file transferred cleanly,
even for a ~5MB file.
Regards,
I can verify that apache2-mpm-worker is indeed having this problem when
serving static files from a CIFS mount on a modern lenny system.
Each HTTP fetch is capable of pulling some smallish amount of bytes
(~10K for some connections i've tried) before the TCP connection
abruptly terminates.
On such a pull, an strace shows:
at the time of the send, and if LogLevel is set to debug, apache only
logs the following single line to error.log (client IP has been
anonymized):
I agree with Bastian Blank that it seems like Apache is misbehaving
here. If sendfile(2) fails, shouldn't apache gracefully fall back to
non-sendfile behavior (based on the number of bytes transferred, which
should be in the *offset parameter).
sendfile(2) even says:
Applications may wish to fall back to read(2)/write(2) in
the case where sendfile() fails with EINVAL or ENOSYS.
Interestingly, when i tried experimenting with this by doing sendfile
from a CIFS-mounted file through a local UNIX-domain socket [0],
sendfile(2) returned EOVERFLOW, but the entire file transferred cleanly,
even for a ~5MB file.
Regards,
Daniel's message reminded me that I hadn't reported my follow up findings from my message(s) in October... As Daniel mentions, yes this is still a problem in stable Lenny, and I also confirmed it is a problem in etch-and-a-half as well. I also tested this against Microsoft Server 2003 (with both lenny and etch-and-a-half), and the issue is identical. So that should rule out any concern that Solaris 10 and/or Samba is doing anything out of the ordinary.
Hi Chad, This means you didn't find any kernel version where sendfile is working? Then I fear you are out of luck. If you can't demonstrate to the kernel people that this is a regression, they probably won't take a closer look. If you find a kernel version where it worked, please file a new bug report on the kernel. With respect to apache, it works as documented and as it always has. You have to use "EnableSendfile off" on network file systems. This behaviour won't be changed in lenny or etch. I have poked upstream about the rationale for this behaviour. But if I judge them correctly, the behaviour won't be changed in the lifetime of 2.2.x. I am sorry but I can't help you further at the moment. Cheers, Stefan
Hi,
I don't deny this and it is certainly not optimal, but it works as
documented. I have poked upstream about it but I don't expect that it
changes in the near future.
It also says:
CONFORMING TO
Not specified in POSIX.1-2001, or other standards.
Other Unix systems implement sendfile() with different
semantics and prototypes. It should not be used in
portable programs.
Apache needs to be portable. Maybe sendfile's error reporting does not
work reliable on other plattforms.
This would show that it is not so easy to determine where to continue when
something went wrong. Interestingly, EOVERFLOW is not a valid error code
for sendfile according to my version of sendfile(2) :-/
Cheers,
Stefan
Stefan, Unfortunately, I didn't find any kernel version where sendfile was working. I only tried the kernels that I reference in #91, as those were the kernels I found in archive.debian.net that were around or before the time that it was reported working last. That was why I asked in #91 if it could possibly be a dependency such as libc. I've been hoping to setup another system that has both apache, all its deps, and a kernel from the time that this worked, but unfortunately I've been exceptionally busy lately. I'll see if I can squeeze in some time over the next few weeks to try this.
OK, fair enough. Is there anything in an upstream bugtracker? Should we link these up? Perhaps one of these upstream bugs is relevant: https://issues.apache.org/bugzilla/show_bug.cgi?id=45986 https://issues.apache.org/bugzilla/show_bug.cgi?id=45292 hrm, yeah, this is certainly possible. And hard to work around :( Well, in this case, nothing went wrong (since the whole file was transferred across the socket). When i get a chance, i'll try to modify my code to do this over a network socket instead of a UNIX socket, and listen to it from socat on another machine to see if i can get the whole file that way. It seems not unlikely that the different socket domains (AF_UNIX and AF_INET) would have different code paths in the kernel.
Interesting. I've just updated my hack of a simple sendfile() test [0], and it seems that it has the same result over a TCP connection as over a local UNIX-domain socket, even pulling from CIFS. The setup: /mnt is a cifs mount. The listener is set up on a different machine with address $RECV_IP: socat TCP4-LISTEN:3333 STDIO | sha1sum The sender tests the sha1sum of the file (both on the cifsmount, and on a local filesystem), and then sends the cifsmounted file to the receiver: cp /mnt/bigfile.ogg /tmp sha1sum /mnt/bigfile.ogg /tmp/bigfile.ogg ./sendfiletester /mnt/bigfile.ogg $RECV_IP 3333 the result: * sendfile returns EOVERFLOW, but sets *offset to the total number of bytes requested to be sent. * the data is transferred cleanly across the network, and all three sha1sums match. The above is even true if i simulate network congestion by throttling the throughput significantly at the receiver's end by running the following command instead: trickle -s -d 500 TCP4-LISTEN:3333 STDIO | sha1sum I this case, the invocation of sendfile() hangs while the client is hanging, but it invariably returns first, with the same EOVERFLOW, and with *offset set the same way. And the full file still gets through :/ So i'm stumped: apache-mpm-worker is doing something different than my test harness is doing, for sure. Maybe it's a threading issue?
Dear sir, Fyi we got an instruction from our client to contact you on the above subject, please kindly take into quick consideration the attached shipping documents before we proceed with shipment. Kindly confirm that the details are correct and revert back to us asap Regards Shipping agent Wan Hai Lines co.,ltd 600 minsheng road shanghai 200135 china Tel:(86)-(21)-58834638 Fax:(86)-(21)-58832073 Zip code:200135
Dear sir, Fyi we got an instruction from our client to contact you on the above subject, please kindly take into quick consideration the attached shipping documents before we proceed with shipment. Kindly confirm that the details are correct and revert back to us asap Regards Shipping agent Wan Hai Lines co.,ltd 600 minsheng road shanghai 200135 china Tel:(86)-(21)-58834638 Fax:(86)-(21)-58832073 Zip code:200135
Dear sir, Fyi we got an instruction from our client to contact you on the above subject, please kindly take into quick consideration the attached shipping documents before we proceed with shipment. Kindly confirm that the details are correct and revert back to us asap Regards Shipping agent Wan Hai Lines co.,ltd 600 minsheng road shanghai 200135 china Tel:(86)-(21)-58834638 Fax:(86)-(21)-58832073 Zip code:200135
Dear sir, Fyi we got an instruction from our client to contact you on the above subject, please kindly take into quick consideration the attached shipping documents before we proceed with shipment. Kindly confirm that the details are correct and revert back to us asap Regards Shipping agent Wan Hai Lines co.,ltd 600 minsheng road shanghai 200135 china Tel:(86)-(21)-58834638 Fax:(86)-(21)-58832073 Zip code:200135
Dear sir, Fyi we got an instruction from our client to contact you on the above subject, please kindly take into quick consideration the attached shipping documents before we proceed with shipment. Kindly confirm that the details are correct and revert back to us asap Regards Shipping agent Wan Hai Lines co.,ltd 600 minsheng road shanghai 200135 china Tel:(86)-(21)-58834638 Fax:(86)-(21)-58832073 Zip code:200135
Laba diena, Noriu Jus informuoti apie šių metų pasikeitimą dėl atnaujintos visos Lietuvos įmonių bazės 2018 metų sausio vidurio. Visi juridiniai asmenys pateikti bazėje yra veikiantys, realiai vykdantys veiklą, turintys įdarbintų darbuotojų. Duomenys pagal Sodrą, Registrų centrą. Bazėje nurodoma ir apyvarta, darbuotojų atlyginimai, darbuotojų skaičius, transporto skaičius ir daug kitų duomenų, kuriuos matysite pavyzdyje. Duomenis galima filtruoti pagal veiklas, miestus ir kitus duomenis. Šią bazę verta turėti visoms įmonėms. Pateiksiu priežastis: 1) Kontaktai pateikti bazėje direktorių ir kitų atsakingų asmenų, didelė tikimybė Jums surasti naujų klientų, partnerių, tiekėjų, kai tiesiogiai bendrausite su direktoriais, komercijos vadovais. 2) Konkurentų analizavimas, tiekėjų atsirinkimas pagal Jums reikalingus kriterijus, galite atsifiltruoti pagal įmonės dydį, bazėje nurodoma kiek įmonės skolingos Sodrai. 3) Lengva, greita ir patogu dirbti su šia baze, elektroninius pašto adresus galite importuoti į elektroninių laiškų siuntimo programas ar sistemas iš kurių siunčiate elektroninius laiškus. Taip pat galite importuoti mobiliųjų telefonų numerius į SMS siuntimo programas. Išsirinkite iš "Veiklų sąrašo" veiklas kurių Jums reikia. ( Sąrašas prisegtas laiške excel faile ) Parašykite, kurias veiklas išsirinkote ir atsiųsime pavyzdį ir pasiūlymą su sąlygomis įmonių bazei įsigyti Pagarbiai, Tadas Giedraitis Tel. nr. +37067881041
Laba diena, Noriu Jus informuoti apie šių metų pasikeitimą dėl atnaujintos visos Lietuvos įmonių bazės 2018 metų sausio vidurio. Visi juridiniai asmenys pateikti bazėje yra veikiantys, realiai vykdantys veiklą, turintys įdarbintų darbuotojų. Duomenys pagal Sodrą, Registrų centrą. Bazėje nurodoma ir apyvarta, darbuotojų atlyginimai, darbuotojų skaičius, transporto skaičius ir daug kitų duomenų, kuriuos matysite pavyzdyje. Duomenis galima filtruoti pagal veiklas, miestus ir kitus duomenis. Šią bazę verta turėti visoms įmonėms. Pateiksiu priežastis: 1) Kontaktai pateikti bazėje direktorių ir kitų atsakingų asmenų, didelė tikimybė Jums surasti naujų klientų, partnerių, tiekėjų, kai tiesiogiai bendrausite su direktoriais, komercijos vadovais. 2) Konkurentų analizavimas, tiekėjų atsirinkimas pagal Jums reikalingus kriterijus, galite atsifiltruoti pagal įmonės dydį, bazėje nurodoma kiek įmonės skolingos Sodrai. 3) Lengva, greita ir patogu dirbti su šia baze, elektroninius pašto adresus galite importuoti į elektroninių laiškų siuntimo programas ar sistemas iš kurių siunčiate elektroninius laiškus. Taip pat galite importuoti mobiliųjų telefonų numerius į SMS siuntimo programas. Išsirinkite iš "Veiklų sąrašo" veiklas kurių Jums reikia. ( Sąrašas prisegtas laiške excel faile ) Parašykite, kurias veiklas išsirinkote ir atsiųsime pavyzdį ir pasiūlymą su sąlygomis įmonių bazei įsigyti Pagarbiai, Tadas Giedraitis Tel. nr. +37067881041
-- My Dear Friend, I never want to bother you at all with my business proposal. However is sure i contact you as my foreign partner. I would like you to give me your full consideration to participate and share the amounts with me. You have to follow up so that you know what to do next. I need a matured and capable foreign partner like you in a business deal of $15.5 million US dollars. I belief you are suitable to handle such project perfectly. I will guide how you collect this amount on our behalf once i get your positive response. Sorry if you received this letter in your spam, Due to recent connection error here in my country. Look forward to your rapid reply! Thanks and best regards, Mr.Rechard Thomas.
Hello, Our partners referred your company to us. Regarding your great products. Please see required products, quantity and specifications as attached. Kindly give us your lowest possible prices for FCL shipment. Best Regards, Wanda Rodriguez Purchase Assistant Hidroconta Trading Ltd. Av. de Sta. Catalina, 60, 30012 Murcia, Spain Phone: +34 968 26 77 66 Fax: +34 968 26 77 06
Hello, Our partners referred your company to us. Regarding your great products. Please see required products, quantity and specifications as attached. Kindly give us your lowest possible prices for FCL shipment. Best Regards, Wanda Rodriguez Purchase Assistant Hidroconta Trading Ltd. Av. de Sta. Catalina, 60, 30012 Murcia, Spain Phone: +34 968 26 77 66 Fax: +34 968 26 77 06
Hello there, I hope this message finds you in good spirits especially during this challenging time of coronavirus pandemic. I hope you and your family are well and keeping safe. Anyway, I am Chris Pavlides, a broker working with Flippiebecker Wealth. I got your contact (along with few other contacts) through an online business directory and I thought I should contact you to see if you are interested in this opportunity. I am contacting you because one of my high profile clients is interested in investing abroad and has asked me to look for individuals and companies with interesting business ideas and projects that he can invest in. He wants to invest a substantial amount of asset abroad. Please kindly respond back to this email if you are interested in this opportunity. Once I receive your response, I will give you more details and we can plan a strategy that will be beneficial to all parties. Best regards C Pavlides Flippiebecker Wealth
Dzień dobry, kontaktuję się z Państwem, ponieważ dostrzegam możliwość redukcji opłat za prąd. Odpowiednio dobrana instalacja fotowoltaiczna to rozwiązanie, które pozwala wygenerować spore oszczędności w skali roku. Chciałbym porozmawiać z Państwem o tego typu rozwiązaniu, a także przedstawić wstępne kalkulacje. Czy są Państwo zainteresowani? Pozdrawiam, Dorian Kwiatkowski
Dzień dobry, kontaktuję się z Państwem, ponieważ dostrzegam możliwość redukcji opłat za prąd. Odpowiednio dobrana instalacja fotowoltaiczna to rozwiązanie, które pozwala wygenerować spore oszczędności w skali roku. Chciałbym porozmawiać z Państwem o tego typu rozwiązaniu, a także przedstawić wstępne kalkulacje. Czy są Państwo zainteresowani? Pozdrawiam, Dorian Kwiatkowski
Dzień dobry, kontaktuję się z Państwem, ponieważ dostrzegam możliwość redukcji opłat za prąd. Odpowiednio dobrana instalacja fotowoltaiczna to rozwiązanie, które pozwala wygenerować spore oszczędności w skali roku. Chciałbym porozmawiać z Państwem o tego typu rozwiązaniu, a także przedstawić wstępne kalkulacje. Czy są Państwo zainteresowani? Pozdrawiam, Dorian Kwiatkowski
Dzień dobry, jakiś czas temu zgłosiła się do nas firma, której strona internetowa nie pozycjonowała się wysoko w wyszukiwarce Google. Na podstawie wykonanego przez nas audytu SEO zoptymalizowaliśmy treści na stronie pod kątem wcześniej opracowanych słów kluczowych. Nasz wewnętrzny system codziennie analizuje prawidłowe działanie witryny. Dzięki indywidualnej strategii, firma zdobywa coraz więcej Klientów. Czy chcieliby Państwo zwiększyć liczbę osób odwiedzających stronę internetową firmy? Mógłbym przedstawić ofertę? Pozdrawiam serdecznie, Patryk Górecki
Dzień dobry, jakiś czas temu zgłosiła się do nas firma, której strona internetowa nie pozycjonowała się wysoko w wyszukiwarce Google. Na podstawie wykonanego przez nas audytu SEO zoptymalizowaliśmy treści na stronie pod kątem wcześniej opracowanych słów kluczowych. Nasz wewnętrzny system codziennie analizuje prawidłowe działanie witryny. Dzięki indywidualnej strategii, firma zdobywa coraz więcej Klientów. Czy chcieliby Państwo zwiększyć liczbę osób odwiedzających stronę internetową firmy? Mógłbym przedstawić ofertę? Pozdrawiam serdecznie, Patryk Górecki
Dzień dobry, jakiś czas temu zgłosiła się do nas firma, której strona internetowa nie pozycjonowała się wysoko w wyszukiwarce Google. Na podstawie wykonanego przez nas audytu SEO zoptymalizowaliśmy treści na stronie pod kątem wcześniej opracowanych słów kluczowych. Nasz wewnętrzny system codziennie analizuje prawidłowe działanie witryny. Dzięki indywidualnej strategii, firma zdobywa coraz więcej Klientów. Czy chcieliby Państwo zwiększyć liczbę osób odwiedzających stronę internetową firmy? Mógłbym przedstawić ofertę? Pozdrawiam serdecznie, Patryk Górecki
Dzień dobry, jakiś czas temu zgłosiła się do nas firma, której strona internetowa nie pozycjonowała się wysoko w wyszukiwarce Google. Na podstawie wykonanego przez nas audytu SEO zoptymalizowaliśmy treści na stronie pod kątem wcześniej opracowanych słów kluczowych. Nasz wewnętrzny system codziennie analizuje prawidłowe działanie witryny. Dzięki indywidualnej strategii, firma zdobywa coraz więcej Klientów. Czy chcieliby Państwo zwiększyć liczbę osób odwiedzających stronę internetową firmy? Mógłbym przedstawić ofertę? Pozdrawiam serdecznie, Patryk Górecki
Dzień dobry, jakiś czas temu zgłosiła się do nas firma, której strona internetowa nie pozycjonowała się wysoko w wyszukiwarce Google. Na podstawie wykonanego przez nas audytu SEO zoptymalizowaliśmy treści na stronie pod kątem wcześniej opracowanych słów kluczowych. Nasz wewnętrzny system codziennie analizuje prawidłowe działanie witryny. Dzięki indywidualnej strategii, firma zdobywa coraz więcej Klientów. Czy chcieliby Państwo zwiększyć liczbę osób odwiedzających stronę internetową firmy? Mógłbym przedstawić ofertę? Pozdrawiam serdecznie, Patryk Górecki
Dzień dobry! Czy mógłbym przedstawić rozwiązanie, które umożliwia monitoring każdego auta w czasie rzeczywistym w tym jego pozycję, zużycie paliwa i przebieg? Dodatkowo nasze narzędzie minimalizuje koszty utrzymania samochodów, skraca czas przejazdów, a także tworzenie planu tras czy dostaw. Z naszej wiedzy i doświadczenia korzysta już ponad 49 tys. Klientów. Monitorujemy 809 000 pojazdów na całym świecie, co jest naszą najlepszą wizytówką. Bardzo proszę o e-maila zwrotnego, jeśli moglibyśmy wspólnie omówić potencjał wykorzystania takiego rozwiązania w Państwa firmie. Z poważaniem, Dawid Rowicki
Dzień dobry! Czy mógłbym przedstawić rozwiązanie, które umożliwia monitoring każdego auta w czasie rzeczywistym w tym jego pozycję, zużycie paliwa i przebieg? Dodatkowo nasze narzędzie minimalizuje koszty utrzymania samochodów, skraca czas przejazdów, a także tworzenie planu tras czy dostaw. Z naszej wiedzy i doświadczenia korzysta już ponad 49 tys. Klientów. Monitorujemy 809 000 pojazdów na całym świecie, co jest naszą najlepszą wizytówką. Bardzo proszę o e-maila zwrotnego, jeśli moglibyśmy wspólnie omówić potencjał wykorzystania takiego rozwiązania w Państwa firmie. Z poważaniem, Dawid Rowicki
Dzień dobry, czy interesuje Państwa wymiana niezapłaconych przez Klientów faktur na gotówkę? Pomagamy wszystkim przedsiębiorcom, którzy szukają gwarancji bezpieczeństwa i płynności finansowej. Jeśli są Państwo otwarci na wstępną rozmowę w tym temacie proszę o odpowiedź. Pozdrawiam, Adrian Ostojski Dyrektor Finansowy
Dzień dobry, zapoznałem się z Państwa ofertą i z przyjemnością przyznaję, że przyciąga uwagę i zachęca do dalszych rozmów. Pomyślałem, że może mógłbym mieć swój wkład w Państwa rozwój i pomóc dotrzeć z tą ofertą do większego grona odbiorców. Pozycjonuję strony www, dzięki czemu generują świetny ruch w sieci. Możemy porozmawiać w najbliższym czasie? Pozdrawiam Adam Furgalski
Dzień dobry, zapoznałem się z Państwa ofertą i z przyjemnością przyznaję, że przyciąga uwagę i zachęca do dalszych rozmów. Pomyślałem, że może mógłbym mieć swój wkład w Państwa rozwój i pomóc dotrzeć z tą ofertą do większego grona odbiorców. Pozycjonuję strony www, dzięki czemu generują świetny ruch w sieci. Możemy porozmawiać w najbliższym czasie? Pozdrawiam Adam Furgalski