WishMesh http://wishmesh.com Real men don't make backups Sun, 13 Jul 2014 13:18:23 +0000 en-US hourly 1 http://wordpress.org/?v=3.9.1 Mystic TCP/IP packet loss and MTU 1504 in Windows 7 http://wishmesh.com/2014/03/mystic-tcpip-packet-loss-and-mtu-1504-in-windows-7/?utm_source=rss&utm_medium=rss&utm_campaign=mystic-tcpip-packet-loss-and-mtu-1504-in-windows-7 http://wishmesh.com/2014/03/mystic-tcpip-packet-loss-and-mtu-1504-in-windows-7/#comments Thu, 13 Mar 2014 11:13:44 +0000 http://wishmesh.com/?p=1203 Continue reading ]]> We recently have observed some strange things in our local are network. Some Internet resources, mostly from Microsoft, failed to open in any web browser (IE, Firefox, Chrome, Opera, Telnet to port 80). As it happened on all computers, we thought that this is our ISP issue and wrote to support. ISP shortly responded that everything works on their side.

Some random/example resources that didn’t work:

We started to dig deeper. And after some troubleshooting and debugging found, that Microsoft resources do not open because URLs/sites related to CDN does not send any info. The strange thing was, that TCP/IP connection is established, but no data is coming our way (later I learned that partial first packed come through, but it was not visible in Telnet console).

Some of the problematic CDNs:

  • media.ch9.ms
  • ajax.aspnetcdn.com
  • static.ch9.ms

It is important to note, that at this point we thought that this is DNS issue, because everything worked well for our 2nd ISP, and we tried to use IP addresses from our second ISP in Windows hosts file, and sites seemed to start working.

Days past… conversation with our ISP… most of Internet works for us including Gmail, news, etc… Microsoft websites still does not work…

ISP is sending technician to check issue on site. Comes with laptop, and to my big surprise, everything works flawlessly on his PC.

Started to debug, comparing IP addresses, DNS, changing IPs, changing DNS, using Goolge DNS 8.8.8.8, switching cables… and nothing works on our Windows 7 but still works on his laptop.

Out of curiosity I start virtual machine with Windows 7, open IE and… Microsoft sites are opening in virtual machine, that is on the same physical PC.

Ok. Now try to disable Windows Firewall, Antivirus, etc., etc…

Now I clearly see that problem is related to our Windows PCs, not the ISP, so I start to think of all dark scenarios — rootkit, virus, broken hardware driver, broken hardware on all our PC simultaneously… still no progress…

Starting Wireshark. Connection to CDN is established… but data is not coming except partial first packet. Looking closer, Wireshark shows multiple [TCP Previous segment lost] and [A segment before this frame was lost]. Search for this in Google and one topic talks about rare TCP segment loss:
TCP PREVIOUS SEGMENT LOST #REALLY RARE CASE#

This must be it, because it looks like Rare Case :)

From this point it was straightforward. The article talks about MTU size mismatch. The first thing to do, I check MTU for my network adapter. Unfortunately my NIC does not support changing MTU via GUI interface, so I use netsh. How do I change the MTU setting in Windows 7?

To view MTU use the following command:
netsh interface ipv4 show subinterfaces

For me it was mysteriously changed from 1500 to 1504. Still do not know why and how it was changed.

To change it to 1500 (default for Ethernet):
Start command prompt cmd.exe
netsh
interface
ipv4
set subinterface "Local Area Connection" mtu=1500 store=persistent

In my case it was “Local Area Connection 2″.

See also:
The default MTU sizes for different network topologies

]]>
http://wishmesh.com/2014/03/mystic-tcpip-packet-loss-and-mtu-1504-in-windows-7/feed/ 1
Dell Rack UPS 5600W + EBM + NMC + Environment probe http://wishmesh.com/2013/12/dell-rack-ups-5600w-ebm-nmc-environment-probe/?utm_source=rss&utm_medium=rss&utm_campaign=dell-rack-ups-5600w-ebm-nmc-environment-probe http://wishmesh.com/2013/12/dell-rack-ups-5600w-ebm-nmc-environment-probe/#comments Sat, 21 Dec 2013 15:57:29 +0000 http://wishmesh.com/?p=1188 Continue reading ]]> We got hand on brand new Dell Rack UPS 5600W. It comes with EBM (Extended battery module), NMC (Network managament card) and Environment probe (Temperature and humidity). It has some nice integration with VMware vCenter for automatic host/guest shutdown. This automation is included in the price.

It has run time of impressive 49 minutes at half load. For our current configuration (about 1000W) it will last for about 5 hours without external power. Also, it needs so much power, that its Power Cord must be hardwired.

Some images below.

Dell Rack UPS 5600W unboxing Dell Rack UPS 5600W unboxing Dell Rack UPS 5600W - very heavy > 64 kg (> 141 lb) Some DELL UPS models are even heavier Dell Rack UPS 5600W - some specs Dell Rack UPS 5600W - massive EBM cable connector Dell Rack UPS 5600W - front panel removed Dell Rack UPS 5600W - with front bezel - UPS and EBM Dell Rack UPS 5600W - rear - UPS, EBM and NMC connected ]]>
http://wishmesh.com/2013/12/dell-rack-ups-5600w-ebm-nmc-environment-probe/feed/ 0
Solution for: A transport-level error has occurred when receiving results from the server… http://wishmesh.com/2013/10/solution-for-a-transport-level-error-has-occurred-when-receiving-results-from-the-server/?utm_source=rss&utm_medium=rss&utm_campaign=solution-for-a-transport-level-error-has-occurred-when-receiving-results-from-the-server http://wishmesh.com/2013/10/solution-for-a-transport-level-error-has-occurred-when-receiving-results-from-the-server/#comments Mon, 14 Oct 2013 16:59:03 +0000 http://wishmesh.com/?p=1174 Continue reading ]]> We have a program written in C# using Visual Studio 2012 and .NET 4.0 / .NET 4.5. It rapidly executes many queries in Microsoft SQL Server 2008 R2 and then exits. Executed query count varies from several hundred to many thousand.

Today, when executed particular task with very many queries, I noticed an error in the log file:
A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at MyTestApp.Program.QueryOneLineOneValue(String cmdText)
at MyTestApp.Program.Worker(String[] args)
at MyTestApp.Program.Main(String[] args)

At first, the error message lead me to think that something is wrong with the network. “Physical connection is not usable”… anyway it didn’t say anything useful… and SQL Server log file didn’t have anything useful either.

A quick Google search revealed that many people have the same problem:

  1. Minimizing Connection Pool errors in SQL Azure — it has code example with an serious bug, and it leads to Reliability Update 1 for the .NET Framework 4 which may help judging from the description – “Issue 14 – A transport-level error has occurred when sending the request to the server.” I didn’t tried it, mostly because it talks about Azure services.
  2. Discussion in the Microsoft SQL Server Database Engine forum which leads to MSDN article about SQL Server Connection Pooling which again does not help much, because I have only one connection in my application.
  3. And a couple not very useful pages from the Stack Overflow: One suggests to call ClearAllPools and another one is about Azure again.

Again, I had to find solution by myself. I looked at the code and didn’t see anything unusual. I did another run under the VS debugger, and after a while the same exception was thrown. Looking under debug log file, I noticed that program stopped in the same place that in the production server. And by the same place I mean, the same amount of SQL commands were executed.

I quickly put a counter on right before SQL command execution and found that .NET throws exception always on 32767 command. 32767 is very familiar constant for programmers, and it is obvious that some resource leakage is happening. A quick glance at the code again revealed that a call to Close or Using statement is missing.

SqlConnection conn;
   
private static void QueryOneLineOneValue(String cmdText)
{
      string q = "SELECT ... FROM cmdText...";
      SqlCommand command =
         new SqlCommand(q, conn);
   
      SqlDataReader reader = command.ExecuteReader();
   
      while (reader.Read())
      {
         //do something with the data...
      }
   
      reader.Close(); //this line was missing
}

]]>
http://wishmesh.com/2013/10/solution-for-a-transport-level-error-has-occurred-when-receiving-results-from-the-server/feed/ 1
Android devices sometimes use wrong DNS server http://wishmesh.com/2013/09/android-devices-sometimes-use-wrong-dns-server/?utm_source=rss&utm_medium=rss&utm_campaign=android-devices-sometimes-use-wrong-dns-server http://wishmesh.com/2013/09/android-devices-sometimes-use-wrong-dns-server/#comments Fri, 13 Sep 2013 08:42:57 +0000 http://wishmesh.com/?p=1170 Continue reading ]]> Android devices sometimes use wrong DNS server. My assumption is, that it happens when device finds friendly WiFi access point, disconnects from mobile provider/ISP and is just finished connecting to it (WiFi using DHCP). It has setup DNS servers from WiFi, however, it still sends requests to DNS from mobile ISP via WiFi network.
It seems that some caching is going on, and it feels wrong… because mobile ISP may be blocking DNS requests from other networks.

Tested on Galaxy Tab 8.9″ with Android 3.2 and Galaxy Note 10.1″ with Android 4.0.4.

]]>
http://wishmesh.com/2013/09/android-devices-sometimes-use-wrong-dns-server/feed/ 0
UPS C14 to 3 way Multi Socket Europlug 220V (2-pin) http://wishmesh.com/2013/08/ups-c14-to-3-way-multi-socket-europlug-220v-2-pin/?utm_source=rss&utm_medium=rss&utm_campaign=ups-c14-to-3-way-multi-socket-europlug-220v-2-pin http://wishmesh.com/2013/08/ups-c14-to-3-way-multi-socket-europlug-220v-2-pin/#comments Fri, 09 Aug 2013 15:37:24 +0000 http://wishmesh.com/?p=1147 Continue reading ]]> I needed to plug into UPS a device with standard Europlug 220V. However, my APC UPS has only eight C13 sockets.

What I did? I bought a standard multi socket extension cord/lead with 3 outlets (variant compatible with Type C and F Electrical Outlets). Then, I cut off the standard plug, and swapped it with rewirable DIY C14 plug.

BTW, there is at least one manufacturer that is producing UPSes with Europlug. It is Orvaldi. See the last photo.

C14 to 3 way Plug Multi Socket C14 DIY rewirable closeup Orvaldi UPS, back with standard socket ]]>
http://wishmesh.com/2013/08/ups-c14-to-3-way-multi-socket-europlug-220v-2-pin/feed/ 0
Recent network outage for our sites hosted on HostGator http://wishmesh.com/2013/08/recent-network-outage-for-our-sites-hosted-on-hostgator/?utm_source=rss&utm_medium=rss&utm_campaign=recent-network-outage-for-our-sites-hosted-on-hostgator http://wishmesh.com/2013/08/recent-network-outage-for-our-sites-hosted-on-hostgator/#comments Sat, 03 Aug 2013 09:13:19 +0000 http://wishmesh.com/?p=1127 PowerEdge-r510-fatal-error

Yesterday our sites hosted on HostGator was down for a couple of hours (5h 34m). Now everything is up, and is functioning normally.

Read more…

]]>
http://wishmesh.com/2013/08/recent-network-outage-for-our-sites-hosted-on-hostgator/feed/ 0
RAID 1 (mirror) read speed as fast as RAID 0 (stripe) http://wishmesh.com/2013/02/raid-1-mirror-read-speed-as-fast-as-raid-0-stripe/?utm_source=rss&utm_medium=rss&utm_campaign=raid-1-mirror-read-speed-as-fast-as-raid-0-stripe http://wishmesh.com/2013/02/raid-1-mirror-read-speed-as-fast-as-raid-0-stripe/#comments Thu, 28 Feb 2013 09:21:00 +0000 http://wishmesh.com/?p=1086 Continue reading ]]> To our big surprise, the new Intel Raid controller on the Motherboard Intel DX79TO (ver. AAG28805-401) with Intel X79 Express Chipset shows awesome read performance.

The raid model is Intel Rapid Storage Technology enterprise 3.0 (Intel Rapid Storage enterprise – SATA Option ROM – 3.0.1.1370, 2003-2011), which in Microsoft Windows is reported as “Intel C600 Series Chipset SATA RAID Controller”.

Usually, with old Intel RAID models (till ICH10R?), RAID 1 mirror reads only from the one drive at the same time. The last time we tested this, was November 2010 with Intel RAID controller ICH10R.

Now, our test shows, that the new Intel RAID 1 reads from the both mirror drives simultaneously. Writing speed stays the same, however reading speed is twice as fast. Basically, you get read performance the same as from RAID 0 stripe.

Our test setup.

For more details, see the screenshots at the end of this post.

Test results.

HD Tune for SSD shows 957.0 MB/s

HD Tune for SSD shows 957.0 MB/s

HD Tune for HDD shows 182.0 MB/s

HD Tune for HDD shows 182.0 MB/s

9 folders with 20 GB test files. 213.85 MB/s Seagate HDD RAID 1 speed.

9 folders with 20 GB test files. 213.85 MB/s Seagate HDD RAID 1 speed.

Hash & CRC SSD RAID 1 reading speed 1.03 GB/s

Hash & CRC SSD RAID 1 reading speed 1.03 GB/s

FAR Manager SSD RAID 1 reading speed 911.87 MB/s. Little slower, because of NUL device.

FAR Manager SSD RAID 1 reading speed 911.87 MB/s. Little slower, because of NUL device.

FAR Manager HDD RAID 1 reading speed 206.61 MB/s.

FAR Manager HDD RAID 1 reading speed 206.61 MB/s.

Windows Expirience Index via winsat for both drives

Windows Expirience Index via winsat for both drives

Conclusion.

It is possible to get a stunning HDD/SSD read performance with consumer grade hardware. Also, note that in this setup the SSD reading speeds exceeds 1000 MB/s or 1 GB/s. The whole setup costs about $1500.

Device Manager of the test PC Intel Rapid Storage Technology - SSD and HDD Intel SSD Toolbox Windows Expirience Index 7.5

Winsat for both drives, text version:

C:\Windows\system32>winsat disk -drive d
Windows System Assessment Tool
> Running: Feature Enumeration ''
> Run Time 00:00:00.00
> Running: Storage Assessment '-drive d -ran -read'
> Run Time 00:00:05.89
> Running: Storage Assessment '-drive d -seq -read'
> Run Time 00:00:04.16
> Running: Storage Assessment '-drive d -seq -write'
> Run Time 00:00:04.48
> Running: Storage Assessment '-drive d -flush -seq'
> Run Time 00:00:03.39
> Running: Storage Assessment '-drive d -flush -ran'
> Run Time 00:00:10.89
> Running: Storage Assessment '-drive d -hybrid -ran -read -ransize 4096'
NV Cache not present.
> Run Time 00:00:00.00
> Running: Storage Assessment '-drive d -hybrid -ran -read -ransize 16384'
NV Cache not present.
> Run Time 00:00:00.00
> Disk Random 16.0 Read 2.73 MB/s 4.5
> Disk Sequential 64.0 Read 151.95 MB/s 7.1
> Disk Sequential 64.0 Write 170.69 MB/s 7.2
> Average Read Time with Sequential Writes 2.495 ms 6.8
> Latency: 95th Percentile 48.211 ms 1.9
> Latency: Maximum 228.174 ms 7.2
> Average Read Time with Random Writes 11.562 ms 4.1
> Total Run Time 00:00:29.69
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>winsat disk -drive c
Windows System Assessment Tool
> Running: Feature Enumeration ''
> Run Time 00:00:00.00
> Running: Storage Assessment '-drive c -ran -read'
> Run Time 00:00:00.22
> Running: Storage Assessment '-drive c -seq -read'
> Run Time 00:00:02.45
> Running: Storage Assessment '-drive c -seq -write'
> Run Time 00:00:02.16
> Running: Storage Assessment '-drive c -flush -seq'
> Run Time 00:00:00.59
> Running: Storage Assessment '-drive c -flush -ran'
> Run Time 00:00:00.59
> Running: Storage Assessment '-drive c -hybrid -ran -read -ransize 4096'
NV Cache not present.
> Run Time 00:00:00.02
> Running: Storage Assessment '-drive c -hybrid -ran -read -ransize 16384'
NV Cache not present.
> Run Time 00:00:00.00
> Disk Random 16.0 Read 252.32 MB/s 8.0
> Disk Sequential 64.0 Read 892.28 MB/s 8.4
> Disk Sequential 64.0 Write 491.88 MB/s 8.1
> Average Read Time with Sequential Writes 0.226 ms 8.5
> Latency: 95th Percentile 0.432 ms 8.7
> Latency: Maximum 2.235 ms 8.8
> Average Read Time with Random Writes 0.228 ms 8.8
> Total Run Time 00:00:06.39

]]>
http://wishmesh.com/2013/02/raid-1-mirror-read-speed-as-fast-as-raid-0-stripe/feed/ 0
Executing very large script on Microsoft SQL Server 2008 R2 fails http://wishmesh.com/2013/02/executing-very-large-script-on-microsoft-sql-server-2008-r2-fails/?utm_source=rss&utm_medium=rss&utm_campaign=executing-very-large-script-on-microsoft-sql-server-2008-r2-fails http://wishmesh.com/2013/02/executing-very-large-script-on-microsoft-sql-server-2008-r2-fails/#comments Thu, 07 Feb 2013 08:55:06 +0000 http://wishmesh.com/?p=1066 Continue reading ]]> I was trying to execute very large .sql script in Microsoft SQL Server 2008 R2, that runs on Microsoft Windows Server 2008 R2.

First I tried to copy/paste script into Microsoft SQL Server Management Studio. The server has plenty of memory about 5 GB RAM, and script file is about 150 MB in size and line count is about 1 million, so I do not see problem here. Copy/paste part went ok, however after executing script and after long wait, Management Studio surrendered with “Query completed with errors”:
Microsoft SQL Server Management Studio
------------------------------
Cannot execute script.
------------------------------
ADDITIONAL INFORMATION:
Insufficient memory to continue the execution of the program. (mscorlib)
------------------------------
OK
------------------------------

bl-sql-1

Next I tried various combinations of T-SQL command line tools:
osql -S iDGZdb-dev -i test2.sql -U myuser
sqlcmd -S IDGZDB-DEV -i test2.sql -U myuser
osql -t 100000 -a 65535 ...

Still no success. Various errors appeared in console. Running locally on SQL server:
[SQL Server Native Client 10.0]
Shared Memory Provider: No process is on the other end of the pipe.
[SQL Server Native Client 10.0] Communication link failure

Running on remote machine:
[SQL Server Native Client 10.0]
TCP Provider: An existing connection was forcibly closed by the remote host.
[SQL Server Native Client 10.0]Communication link failure

Tried to search for Google and didn’t find any solution. There were many forums where users ask for help about this issue, but no single answer. Suggested “failed network equipment” is nonsense, if I run script locally, there should be no network involved.

Looked in the System event log under Application logs on the Windows Server where SQL Server resides. Luckily there was an error from the SQL Server:
Log Name: Application
Source: MSSQLSERVER
Date: 2013.02.04. 17:37:41
Event ID: 7836
Task Category: Server
Level: Error
Keywords: Classic
User: N/A
Computer: iDGZdb-dev
Description:
A fatal error occurred while reading the input stream from the network. The maximum number of network packets in one request was exceeded. Try using bulk insert, increasing network packet size, or reducing the size of the request. The session will be terminated.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="MSSQLSERVER" />
<EventID Qualifiers="49152">7836</EventID>
<Level>2</Level>
<Task>2</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2013-02-04T15:37:41.000000000Z" />
<EventRecordID>223808009</EventRecordID>
<Channel>Application</Channel>
<Computer>iDGZdb-dev</Computer>
<Security />
</System>
<EventData>
<Binary>...some hex stuff...</Binary>
</EventData>
</Event>

But unfortunately, the error reveals very little about the problem. Didn’t get this part of suggestion “… or reducing the size of the request”. The request of 150 MB is too big for the latest edition of MS SQL? Seriously?

Note: Ok, ok… Microsoft SQL Server 2012 is out, and I am not an expert in this area, however, if MySQL can handle scripts in size of gigabytes and Oracle too, then I must be doing something very wrong, but again, then where are all suggestions in the net? Even StackOverflow has only guesses about “network equipment”.

Next, I tried to increase the packet size as suggested in System log message. More statements were executed from the SQL script, however, it still stopped with a memory error:
There is insufficient system memory in resource pool 'internal' to run this query.
Network packet size (bytes): 32576

How I solved this? I surrendered, and instead of wasting time with weird T-SQL error messages, I wrote a little C# script, that executes my file line by line. All of my SQL statements were one-liners. It took me about 1/2 hour to write this script and execute it.

Here is relevant code fragment:
SqlConnection connection = new SqlConnection(Properties.Settings.Default.YourConnectionString);
connection.Open();

System.IO.StreamReader file = new System.IO.StreamReader(yourFilename);
while ((line = file.ReadLine()) != null)
{
    try
    {
        SqlCommand command = new SqlCommand(line, connection);
        command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        LogErrorSomewhere(ex.Message, line);
    }
}

file.Close();

P.S. If you know, how to execute a such script using standard SQL tools, then you are welcome to leave me a comment.

]]>
http://wishmesh.com/2013/02/executing-very-large-script-on-microsoft-sql-server-2008-r2-fails/feed/ 8
Building OpenSSL with Visual Studio 2010 for x64 / Win64 causes error http://wishmesh.com/2013/01/building-openssl-with-visual-studio-2010-for-x64-win64-causes-error/?utm_source=rss&utm_medium=rss&utm_campaign=building-openssl-with-visual-studio-2010-for-x64-win64-causes-error http://wishmesh.com/2013/01/building-openssl-with-visual-studio-2010-for-x64-win64-causes-error/#comments Sun, 20 Jan 2013 15:06:13 +0000 http://wishmesh.com/?p=1048 Continue reading ]]> visual-studio-2010-x64-cross-tools-command-prompt

Today I was trying to build the latest OpenSSL 1.0.1c with Visual Studio 2010. Following instructions form the INSTALL.W32, I was able to successfully build the 32-bit version. Trying the same with 64-bit (x64) version, again following the official instructions from INSTALL.W64.
To build for Win64/x64:
> perl Configure VC-WIN64A
> ms\do_win64a
> nmake -f ms\ntdll.mak
> cd out32dll
> ..\ms\test

The first line ‘perl Configure VC-WIN64A’ went without any errors:
Configuring for VC-WIN64A
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-shared [default]
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-zlib [default]
no-zlib-dynamic [default]
...
...
...
SIXTY_FOUR_BIT mode
DES_INT used
RC4_CHUNK is unsigned long long
Configured for VC-WIN64A.

The second line ‘ms\do_win64a’ always returned errors:
ml64 -c -Foms\uptable.obj ms\uptable.asm
Microsoft (R) Macro Assembler (x64) Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.


Assembling: ms\uptable.asm
ms\uptable.asm(356) : error A2088:END directive required at end of file
ms\uptable.asm(356) : fatal error A1010:unmatched block nesting : _lazy18

Luckily I found solution in cyber-lynx.livejournal.com
Translation from Russian:
To prevent this, need to change file ms\do_win64a.bat like this: instead of

perl ms\uplink-x86_64.pl masm > ms\uptable.asm
ml64 -c -Foms\uptable.obj ms\uptable.asm

write

perl ms\uplink-x86_64.pl masm > ms\uptable.asm
ping 127.0.0.1
ml64 -c -Foms\uptable.obj ms\uptable.asm

It seems like race condition to me. Command ‘ping 127.0.0.1′ just adds a pause between two commands.

Thanks to Белая рысь (cyber_lynx)! Source: http://cyber-lynx.livejournal.com/40001.html

]]>
http://wishmesh.com/2013/01/building-openssl-with-visual-studio-2010-for-x64-win64-causes-error/feed/ 0
Did you know that IP addresses (IPv4) can be written in shorter representations? http://wishmesh.com/2013/01/did-you-know-that-ip-addresses-ipv4-can-be-written-in-shorter-representations/?utm_source=rss&utm_medium=rss&utm_campaign=did-you-know-that-ip-addresses-ipv4-can-be-written-in-shorter-representations http://wishmesh.com/2013/01/did-you-know-that-ip-addresses-ipv4-can-be-written-in-shorter-representations/#comments Wed, 09 Jan 2013 09:16:52 +0000 http://wishmesh.com/?p=1034 Continue reading ]]> Did you know that IPv4 addresses can be written in shorter representations, like IPv6 addresses?

Everyone have seen form of IPv6 represented as “shorter form”:
Example from IPv6:

  • 2001::7334
  • ::1
  • ::

You can use our free tool ipv6-literal.com to convert these addresses to long form. The result is:

  • 2001:0000:0000:0000:0000:0000:0000:7334
  • 0000:0000:0000:0000:0000:0000:0000:0001
  • 0000:0000:0000:0000:0000:0000:0000:0000

What admins / programmers usually do not know, is that the same principle applies to IPv4 addresses:

  • 127.1
  • 1
  • 192.168.257
  • 192.168.65535
  • 192.168.65535
  • 192.168
  • 10.1

To test these, use built in ping command. I used ping in Windows 7 and Ubuntu 10, and the result addresses are:

  • 127.1 -> 127.0.0.1
  • 1 -> 0.0.0.1
  • 192.168.257 -> 192.168.1.1
  • 192.168.65535 -> 192.168.255.255
  • 192.168 -> 192.0.0.168
  • 10.1 -> 10.0.0.1

As a bonus, you can try to ping other IP address representations:

  • ping 0x7F000001 – hex
  • ping 010 – octal, does not work in Ubuntu
  • ping 2130706433 – decimal

Why it works this way? Because network funcions built into OS support a such behavior, for example:

Have a fun, and remember, that year of IPv6 is near.

]]>
http://wishmesh.com/2013/01/did-you-know-that-ip-addresses-ipv4-can-be-written-in-shorter-representations/feed/ 0